Tomcat是一个由一系列可配置的组件构成的web容器,而Catalina是Tomcat的Servlet容器。
Catalina是Servlet容器实现的,他通过松耦合的方式集成coyote,以完成按照请求协议进行数据读写。同时,他还包括我们的启动入口、shell程序等。
Catalina地位
Tomcat的模块分成结构图,如下:
Tomcat本质上就是一款Servlet容器,因此Catalina才是Tomcat的核心,其他模块都是为了Catalina提供支撑的。比如:通过coyote模块提供链接通信,Jasper模块提供jsp引擎,naming提供jndi服务,juli提供日志服务。
Catalina结构
如图所示,Catalina负责管理server,而server表示这整个服务器。server下面有多个服务service,每个服务都包含着多个连接器组件Connector(coyote实现)和一个容器组件container。在tomcat启动的时候,会初始化一个Catalina的实例。
Catalina各个组件的职责:
Container结构
Tomcat设计了4种容器,分别是Engine、Host、Context和Wrapper。这4种容器不是平行关系,而是父子关系。tomcat通过一种分层的架构,使得servlet容器具有很好的灵活性。
各个组件的含义:
具体实现如下: