Contents
- Tomcat tutorial
- What is Tomcat valve?
- Tomcat security realms
- Log4j project
- Log4j appenders
- Log4j configurators
- How to install Apache & Tomcat server
- Tomcat deployment
- Configure Tomcat
- How to use Tomcat manager
- Jakarta Tomcat server overview
- Jakarta Tomcat server (part 2)
- Persistend sessions
- Embedding Tomcat services
- Find out more about Tomcat architecture
- How to install tomcat on Windows & Linux
Find out more about Tomcat Architecture
Tomcat 4 is a complete rewrite of its ancestors. At the core of this rewrite is the Catalina servlet engine, which acts as the top-level container for all Tomcat instances.
With this rewrite of Tomcat comes an entirely new architecture composed of a grouping of application containers, each with a specific role. The sum of all of these containers makes up an instance of a Catalina engine.
The following code snippet provides an XML representation of the relationships between the different Tomcat containers:
<Server>
<Service>
<Connector />
<Engine>
<Host>
<Context>
</Context>
</Host>
</Engine>
</Service>
</Server>
This instance can be broken down into a set of containers including a server, a service, a connector, an engine, a host, and a context. By default, each of these containers is configured using the server.xml file, which we describe later in more detail.
The Server
The first container element referenced in this snippet is the <Server> element. It represents the entire Catalina servlet engine and is used as a top-level element for a single Tomcat instance. The <Server> element may contain one or more <Service> containers.
The Service
The next container element is the <Service> element, which holds a collection of one or more <Connector> elements that share a single <Engine> element. N-number of <Service> elements may be nested inside a single <Server> element.
The Connector
The next type of element is the <Connector> element, which defines the class that does the actual handling requests and responses to and from a calling client application.
The Engine
The third container element is the <Engine> element. Each defined <Service> can have only one <Engine> element, and this single <Engine> component handles all requests received by all of the defined <Connector> components defined by a parent service.
The Host
The <Host> element defines the virtual hosts that are contained in each instance of a Catalina <Engine>. Each <Host> can be a parent to one or more Web applications, with each being represented by a <Context> component.
The Context
The <Context> element is the most commonly used container in a Tomcat instance. Each <Context> element represents an individual Web application that is running within a defined <Host>. There is no limit to the number of contexts that can be defined within a <Host>.