编辑
2023-11-03
Tomcat源码学习
00

image.png

MapElement

java
protected abstract static class MapElement<T> { public final String name; public final T object; public MapElement(String name, T object) { this.name = name; this.object = object; } }
编辑
2023-11-03
Tomcat源码学习
00

image.png

容器的层次结构

Tomcat 设计了 4 种容器,分别是 Engine、Host、Context 和 Wrapper。这 4 种容器不是平行关系,而是父子关系。

编辑
2023-11-03
Tomcat源码学习
00

总体架构

Tomcat 要实现 2 个核心功能:

  • 处理 Socket 连接,负责网络字节流与 Request 和 Response 对象的转化。
  • 加载和管理 Servlet,以及具体处理 Request 请求。

因此 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责内部处理。

编辑
2023-11-03
Tomcat源码学习
00

Servlet注解

@WebServlet是Java Servlet规范中的一个注解,用于将一个类标记为Servlet,并指定与该Servlet相关的配置信息。下面是对@WebServlet注解的详细解释:

编辑
2023-11-03
Tomcat源码学习
00

Servlet容器

Servlet 容器用来加载和管理业务类。HTTP 服务器不直接跟业务类打交道,而是把请求交给 Servlet 容器去处理,Servlet 容器会将请求转发到具体的 Servlet,如果这个 Servlet 还没创建,就加载并实例化这个 Servlet,然后调用这个 Servlet 的接口方法。因此 Servlet 接口其实是Servlet 容器跟具体业务类之间的接口。下面我们通过一张图来加深理解。