整体架构:连接器与容器
Tomcat 的顶层结构是一棵清晰的组件树:
Server(整个 JVM 实例) └─ Service(把连接器和引擎打包) ├─ Connector(NIO 连接器,监听 8080 等端口) └─ Engine(Servlet 引擎,处理业务逻辑) └─ Host(虚拟主机,按域名区分,如 localhost) └─ Context(一个 Web 应用,按路径区分,如 /app) └─ Wrapper(一个 Servlet) └─ Servlet(你的代码)
Connector 负责「网络进来的事」:监听端口、收 TCP 连接、解析 HTTP 报文、生成 Request/Response 对象。Engine 及以下容器负责「应用逻辑的事」:决定这个请求属于哪个应用、哪个 Servlet。二者通过 Request/Response 对象解耦。