------ 本文部分内容摘自 电子工业出版社《Tomcat 与 Java Web 开发技术详解》
Jakarta Tomcat 服务器作为一个开放源码的软件,是目前开发企业 Java Web 应用的最佳选择之一。本文主要了对 Tomcat 组件的配置,供大家一起参考、学习。
Tomcat 服务器是由一系列可配置的组件构成,其中核心组件是 Catalina Servlet 容器,它是所有其他 Tomcat 组件的顶层容器。Tomcat 的组件可以在 <CATALINA_HOME>/conf/server.xml 文件中进行配置,每个 Tomcat 组件在 server.xml 文件中对应一种配置元素。
以下代码以 XML 的形式展示了各种 Tomcat 组件之间的关系:
<Server>
<Service>
<Connector />
<Engine>
<Host>
<Context>
</Context>
</Host>
</Engine>
</Service>
</Server>
在以上 XML 代码中,每个元素都代表一种 Tomcat 组件。这些元素可分 4 类:
1、顶层类元素
顶层类元素包括 <Server> 元素和 <Service> 元素,他们位于整个配置文件的顶层。
2、连接器类元素
连接器类元素代表了介于客户与服务之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应结果传递给客户。
3、容器类元素
容器类元素代表处理客户请求并生成响应结果的组件,有 3 种容器类元素,它们是 Engine、Host 和 Context。Engine 组件为特定的 Service 组件处理所有的客户请求,Host 组件为特定的虚拟主机处理所有客户请求,Context 组件为特定的 Web 应用处理所有客户请求。
4、嵌套类元素
嵌套类元素代表了可以加入到容器中的组件,如 <Logger> 元素、<Valve> 元素和 <Realm> 元素。
下面是对基本 Tomcat 元素的介绍,具体元素属性参见后续文档:
● <Server> 元素
<Server> 元素代表整个 Catalina Servlet 容器,它是 Tomcat 实例的顶层元素,由 org.apache.catalina.Server 接口来定义。<Server> 元素中可以包含一个或多个 <Service> 元素,但 <Server> 元素不能做为任何其他元素的子元素。
● <Service> 元素
<Service> 元素由 org.apache.catalina.Service 接口来定义,它包含一个 <Engine> 元素,以及一个或多个 <Connector> 元素,这些 <Connector> 元素共享同一个 <Engine> 元素。
● <Connector> 元素
<Connector> 元素由 org.apache.catalina.Connector 接口来定义。<Connector> 元素代表和客户程序实际交互的组件,它负责接受客户请求,以及向客户返回响应结果。
● <Engine> 元素
<Engine> 元素由 org.apache.catalina.Engine 接口来定义。每个 <Service> 元素只能包含一个 <Engine> 元素。<Engine> 元素处理在同一个 <Service> 元素中所有 <Connector> 元素接受到的客户请求。
<Engine> 元素可包括如下子元素:
<Loggor>
<Realm>
<Valve>
<Host>
● <Host> 元素
<Host> 元素由 org.apache.catalina.Host 接口来定义。一个 <Engine> 元素中可以包含多个 <Host> 元素。每个 <Host> 元素定义了一个虚拟主机,他可以包含一个或多个 Web 应用。
<Host> 元素可包括如下子元素:
<Loggor>
<Realm>
<Valve>
<Context>
● <Context> 元素
<Context> 元素由 org.apache.catalina.Context 接口来定义。<Context> 元素是使用最频繁的元素。每个 <Context> 元素代表运行在虚拟主机上的单个 Web 应用。一个 <Host> 元素中可以包含多个 <Context> 元素。
<Context> 元素可包括如下子元素:
<Loggor>
<Realm>
<Valve>
<Resource>
<ResourceParams>