Tomcat架构分析
一. HTTP服务器请求处理
- 图1表示HTTP服务器直接调用具体的业务类,是紧耦合的。
- 图2表示HTTP服务器不直接调用具体的业务类,而是将请求交给Servlet容器来处理,Servlet容器通过Servlet接口调用业务类,达到了解耦合的作用。
二. Servlet容器工作流程
- HTTP服务器将客户的请求信息用法ServletRequest对象进行封装;
- 根据请求的URL和Servlet的映射关系,找到对应的Servlet容器;
- 若Servlet还未被加载,就用反射机制创建这个Servlet,并调用init()方法完成初始化;
- 再调用service()方法来处理请求;
- 将ServletResponse对象返回给HTTP服务器。
三. Tomcat整体架构
- 处理Socket连接,负责网络字节流与Request和Response对象的转化;
- 加载和管理Servlet,以及处理Request请求;
故Tomcat设计了两个核心组件:连接器(负责对外交流)和容器(负责内部处理)