专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Tomcat 体系结构

一、Tomcat 体系结构图

86_1.png

二、各组件作用

1. Coyote 的内部组件

Coyote 组件以及作用 :

组件 作用
EndPoint EndPoint 是监听的接⼝,是Socket接收和发送处理器,是对传输层的抽象,因此EndPoint⽤来实现TCP/IP协议的
Processor Processor 是Coyote 协议处理接⼝,Processor⽤来实现HTTP协议,Processor接收来⾃EndPoint的Socket,读取字节流解析成Tomcat Request和Response对象,并通过Adapter将其提交到容器处理,Processor是对应⽤层协议的抽象
ProtocolHandler Coyote 协议接⼝, 通过Endpoint 和 Processor , 实现针对具体协议的处理能⼒。Tomcat 按照协议和I/O 提供了6个实现类 : AjpNioProtocol ,AjpAprProtocol,AjpNio2Protocol ,Http11NioProtocol Http11Nio2Protocol ,Http11AprProtocol
Adapter 协议不同,请求信息也不同,Tomcat定义了Request封装信息。将ProtocolHandler 处理成 ServletRequest,这是经典的适配器模式,连接器调用CoyoteAdapter的Sevice⽅法,将Tomcat Request -> ServletRequest

2. Tomcat Servlet 容器 Catalina

2.1 Tomcat 模块分层结构图及Catalina位置

Tomcat 可以通过 (conf/server.xml)的组件构成的Web容器,⽽Catalina是Tomcat的 servlet容器。Catalina 才是 Tomcat 的核⼼。 其他模块都是为Catalina 提供⽀撑的。 ⽐如 : 通过 Coyote 模块提供链接通信,Jasper 模块提供 JSP 引擎,Naming 提供JNDI 服务,Juli 提供⽇志服务。

2.2 Servlet 容器 Catalina 的结构

可认知为整个Tomcat就是一个Catalina实例,Tomcat启动会初始化这个实例,Catalina 实例通过加载server.xml 完成其他实例创建,创建管理一个Server,Server创建多个Serivce,每个Service有多个Connector 和一个Container。

⚠️:多个Connector 对应 一个 Container/Engine

组件 作用描述
Catalina 解析conf/server.xml,以此创建Server并管理。
Server 表示整个Catalina Servlet容器以及其他组件,负责启动Servlet引擎,Tomcat连接器Connector
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 :代表一个虚拟主机,(例如一个www.abc.com域名就是一个虚拟主机),而一个虚拟主机可以包含多个Context。
  • Context :代表一个Web应用,⼀个Web应⽤可包含多个Wrapper。
  • Wrapper :表示⼀个Servlet,Wrapper 作为容器中的最底层,不能包含⼦容器

上述组件的配置其实就体现在conf/server.xml中。

文章永久链接:https://tech.souyunku.com/29299

未经允许不得转载:搜云库技术团队 » Tomcat 体系结构

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们