Web应用加载
Catalina对于Web应用的加载主要由StandardHost、HostConfig、StandardContext、ContextConfig、StandardWrapper这五个类完成。
Coyote是Tomcat连接器框架的名称,是Tomcat服务器提供的供客户端访问的外部接口。客户端通过Coyote与服务器建立连接、发送请求并接收响应。
Connector封装了底层的网络通信(Socket请求和响应),为Catalina容器提供了统一的接口,使Catalina容器与具体的请求协议及I/O方式解耦。Connector将Socket输入转换为Request对象,交由Catalina容器进行处理,处理完成后,Catalina通过Connector提供的Response对象将结果写入到输出流
Connector就是ServerSocket来等待HTTP请求,Processor解析HTTP请求来创建HttpRequest和HttpResponse
连接器负责对外连接,容器负责内部处理。
之前分析tomcat的组件时说过,Container 用于封装Servlet,以及具体处理request请求,Container是一个接口,针对不同级别的容器分为四个子接口:Engine、Host、Context、Wrapper
1 | // Container是父接口 |
四个子容器的装配关系如下:
Engine是最顶层的容器,每个Service最多只能有一个Engine,Engine中可以有多个Host,每个Host下可以有多个Context,每个Context下可以有多个Wrapper
tomcat是一个servlet容器,有3个基本任务,