Tomcat Container 组件下有哪四个子容器?
在 Apache Tomcat 的架构中,Container(容器) 组件负责处理客户端的请求并返回响应。Container 是一个分层的结构,主要包含以下四个核心子容器(按从父到子的层级顺序排列):
Engine(引擎)
- 层级: 顶层容器。
- 作用: 代表整个 Catalina Servlet 引擎。它负责处理所有连接到该 Service 的请求。一个 Service 只能有一个 Engine。
- 包含: 可以包含一个或多个 Host。
Host(主机)
- 层级: Engine 的子容器。
- 作用: 代表一个虚拟主机(Virtual Host)。例如,
localhost或www.yourdomain.com。它负责运行部署在特定的网络名(域名)下的应用。 - 包含: 可以包含一个或多个 Context。
Context(上下文)
- 层级: Host 的子容器。
- 作用: 代表一个独立的 Web 应用程序(Web Application)。每一个 Context 对应一个 Web 工程(即一个 WAR 包或一个应用目录)。它是 Tomcat 中最常用的容器概念。
- 包含: 可以包含一个或多个 Wrapper。
Wrapper(包装器)
- 层级: Context 的子容器,也是最底层的容器。
- 作用: 代表一个独立的 Servlet 定义。它负责管理一个具体 Servlet 的生命周期(加载、初始化、执行、销毁)。Wrapper 不能包含其他容器。
层级关系总结:
Engine -> 包含 -> Host -> 包含 -> Context -> 包含 -> Wrapper
这种设计模式(组合模式)使得 Tomcat 能够灵活地管理不同层级的请求处理逻辑。