一、容器架构
tomcat容器架构
- server : tomcat服务,它下面可以有多个service (不是容器)
- service :一个http+port服务,它下面可以有多个engine(不是容器)
- engine : 表示整个Catalina servlet引擎的容器,顶级容器
- host : 虚拟主机,代表一个站点。可以虚拟多个主机
- context : 表示一个Web应用程序
- wrapper : 表示一个Servlet
二、连接器架构
Connector 连接器
- endpoint : socket管理工具,不同的io有不同的endpoint实现,如:JIoEndpoint、NioEndpoint、Nio2Endpoint
- Acceptor : socket连接接收器(无限循环)
- Handler :负责处理socket的事件,并且构建Processor,将请求传递给processor
- Processor : 负责http协议的解析,coyote Request、Response的构建
- CoyoteAdapter :将 coyote的Request、Response 转换成 servlet的Request和Response; 将请求传递给Servlet容器
三、容器内请求架构
容器内请求流程:
- 请求从CoyoteAdapter进入容器,容器内的执行流程是:pipeline + valve的责任链模式,找到对应容器的pipeline,然后得到pipeline的第一个valve。最后执行base valve,在base valve中找到下个容器的pipeline依次执行
- 请求执行完wrapper的base valve之后找到过滤器链,执行过滤器链。在执行完过滤器链之后,找到对应的servlet执行,至此,由tomcat容器进入到springmvc容器
来源:oschina
链接:https://my.oschina.net/u/2937247/blog/4305569