Tomcat中的各容器组件都会涉及创建、销毁等,因此设计了⽣命周期接⼝Lifecycle进⾏统⼀规范,各容器组件实现该接⼝。
Lifecycle⽣命周期接⼝继承体系示意
核⼼流程源码剖析
源码追踪部分我们关注两个流程:Tomcat启动流程和Tomcat请求处理流程
1. Tomcat启动流程
- 请求处理流程分析
- 请求处理流程示意图
- 通过endpoint通信端点,接收socket请求,调用processor进行处理
- processor对请求进行处理,封装成request
- request并不能直接使用,需要通过coyoteAdapter将request对象转化为servletRequest对象
- 调用engine(封装有多个host),匹配到host
- 调用host(封装有多个context),匹配到context
- 调用 context(封装有多个wrapper),匹配到wrapper
- 调用wrapper得到servlet,构造filterchain
- 执行各个Filter并执行servlet
Mapper组件体系结构