1. 启动流程
Tomcat启动流程分析:
各种组件如何统一管理?用Lifecycle管理启动、停止、关闭。
2. 请求处理
2.1 链接器(Connector)与容器(Container)
解耦。
Connector 设计:
- 监听服务端口,读取来自客户端的请求
- 将请求数据按照指定协议进行解析
- 根据请求地址匹配正确的容器进行处理
- 将响应返回客户端
2.2 Servlet处理流程
使用管道模式。
管道与阀门。
管道是就像一条管道把多个对象连接起来,整体看起来就像若干个阀门嵌套在管道中,而处理逻辑放在阀门上。
Tomcat 的定制阀门:
管道机制给我们带来了更好的拓展性,例如,你要添加一个额外的逻辑处理阀门是很容易的。
3. 类加载
JVM 类加载器:双亲委派模型。
Tomcat中的类加载器:
- Common类加载器、Catalina类加载器、Shared类加载器
- Webapp类加载器
- Webapp类加载器打破双亲委派模型