- 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
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 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 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 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 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> 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> 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>.