Tomcat架构分析

一. HTTP服务器请求处理

Tomcat架构分析

  1. 图1表示HTTP服务器直接调用具体的业务类,是紧耦合的。
  2. 图2表示HTTP服务器不直接调用具体的业务类,而是将请求交给Servlet容器来处理,Servlet容器通过Servlet接口调用业务类,达到了解耦合的作用。

二. Servlet容器工作流程

Tomcat架构分析

  1. HTTP服务器将客户的请求信息用法ServletRequest对象进行封装;
  2. 根据请求的URL和Servlet的映射关系,找到对应的Servlet容器;
  3. 若Servlet还未被加载,就用反射机制创建这个Servlet,并调用init()方法完成初始化;
  4. 再调用service()方法来处理请求;
  5. 将ServletResponse对象返回给HTTP服务器。

三. Tomcat整体架构

Tomcat架构分析

  1. 处理Socket连接,负责网络字节流与Request和Response对象的转化;
  2. 加载和管理Servlet,以及处理Request请求;
    故Tomcat设计了两个核心组件:连接器(负责对外交流)和容器(负责内部处理)