Tomcat 系统架构与原理剖析( 二 )


4. Tomcat Servlet 容器 Catalina4.1. Tomcat模块分层结构图和Catalina的地位Tomcat是由一系列可配置(conf/server.xml)的组件构成的 Web容器 ,而 Catalina 是 Tomcat 的 Servlet容器  。
Tomcat本质上就是?款 Servlet容器 ,因为 Catalina 才是 Tomcat 的核?,其他模块都是为 Catalina 提供?撑的 。?如 : 通过 Coyote 模块提供链接通信, Jasper 模块提供 JSP引擎 , Naming 提供 JNDI服务 , Juli 提供 ?志服务  。

Tomcat 系统架构与原理剖析

文章插图
 
4.2. Servlet 容器 Catalina 的结构我们往往有?个认识, Tomcat 就是?个 Catalina 的实例,因为 Catalina 是 Tomcat 的核? 。
Tomcat/Catalina实例:
Tomcat 系统架构与原理剖析

文章插图
 
其实,可以认为整个 Tomcat 就是?个 Catalina实例 , Tomcat 启动的时候会初始化这个实例, Catalina实例 通过加 server.xml 完成其他实例的创建,创建并管理?个 Server , Server 创建并管理多个 服务(Service) ,每个 服务(Service) ?可以有多个 Connector 和?个 Container  。
  • Catalina负责解析Tomcat的配置文件(server.xml),以此来创建Server组件并进行管理
  • Server负责组装并启动Servlaet引擎,Tomcat连接器 。Server通过实现Lifecycle接?,提供了?种优雅的启动和关闭整个系统的?式
  • Service服务是Server内部的组件,?个Server包含多个Service 。它将若?个Connector组件绑定到?个Container
  • Container容器,负责处理?户的servlet请求,并返回对象给web?户的模块
4.3. Container组件的具体结构Container组件下有?种具体的组件,分别是 Engine 、 Host 、 Context 和 WrApper  。这4种组件(容器)是??关系 。 Tomcat 通过?种分层的架构,使得 Servlet 容器具有很好的灵活性 。
  • Engine表示整个Catalina的Servlet引擎,?来管理多个虚拟站点,?个Service最多只能有?个Engine,但是?个引擎可包含多个Host
  • Host代表?个虚拟主机,或者说?个站点,可以给Tomcat配置多个虚拟主机地址,??个虚拟主机下可包含多个Context
  • Context表示?个Web应?程序,?个Web应?可包含多个Wrapper
  • Wrapper表示?个Servlet,Wrapper 作为容器中的最底层,不能包含?容器




推荐阅读