Tomcat的结构

 Tomcat的组件在<CATALINA_HOME>/conf/server.xml中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素,以下以xml代码方式表示各组件之间的关系:

<Server>

<Service>

<Connector/>

<Engine>

<Host>

<Context/>

</Host>

</Engine>

</Service>

</Server>

上面的xml元素分别代表着Tomcat的一种组件,以上元素可分为四类。

1、顶层类元素

顶层类元素包括<Server/>元素和<Service>元素,位于整个配置文件的最顶层。

2、连接器类元素

连接器类元素包含<Connector/>元素,代表了介于客户与服务器之间的通信接口。负责将客户的请求发送给服务器,并将服务器的响应结果传递给客户。

3、容器类元素

容器类元素包含<Engine/>元素、<Host/>元素和<Context/>元素,容器类元素代表处理客户请求并生成相应响应结果的组件。<Engine/>组件为特定的<Service/>组件处理所有的客户请求,<Host/>组件为特定的虚拟主机处理所有的客户请求,<Context/>组件为特定的WEB应用处理所有的客户请求。

4、嵌套类元素

嵌套类元素包含<Value/>元素、<Logger/>元素和<Realm/>元素。嵌套类元素代表了可以加入到容器的组件。

 

下面简要介绍一下各元素,具体配置在server.xml

1<Server/>元素

<Server/>元素代表整个Catalina容器,它是Tomcat实例的顶层元素,<Server/>元素可以包含一个或多个<Service/>元素。

2<Service/>元素

<Service/>元素包含一个<Engine/>元素和一个或多个<Connector/>元素,所有的<Connector/>元素共享一个<Engine/>元素。

3、<Connector/>元素

<Connector/>元素代表和客户请求实际交互的组件,它负责接收客户请求并向客户返回响应结果。

4、<Engine/>元素

每个<Service/>元素只能包含一个<Engine/>元素,<Engine/>元素可以包含一个或多个<Host/>元素。<Engine/>元素处理同一个<Service/>元素下所有的<Connector/>元素接收到的客户请求

5、<Host/>元素

<Host/>元素代表一个虚拟主机,一个<Host/>元素下可以包含一个或多个<Context/>元素对应的单个WEB应用。

6、<Context/>元素

<Context/>元素代表运行在<Host/>虚拟主机下的单个WEB应用,是使用最为频繁的元素。一个<Host/>元素下可以包含一个或多个<Context/>元素。

 

Tomcat各组件的嵌套关系,如下图:

 

 

 

 

这张结构图也是描述tomcat框架结构的,他从另一个维度来描述,通过网络端口来源,逐级分解结构,从图上我们可以看出,一个Server可以有多个 Service,但一个Service下面只能有一个Engine,一个Engine下面可以有多个Host,一个Host下面可以有多个 Context,数据流向也可以从图中获知,请求从Connector中开始,一直通过容器传递到Context中,再有Context传递给 Servlet,还有一个就是Server会启动一个ServerSocket来监听8005端口,负责监听是否要关闭Server

猜你喜欢

转载自chongdiyang.iteye.com/blog/2175703
今日推荐