第 4 章 · 容器迷宫:路由与 Web 应用部署 章节摘要:请求过了城门,进入一座四层嵌套的迷宫——Engine 按主机名选 Host,Host 按路径选 Context,Context 按 Servlet 映射选 Wrapper。本章先拆解这套指路系统与虚拟主机配置,再讲 Web 应用的三种部署方式与标准目录结构,最后精读 web.xml 与 context.xml 两份"应用身份文件"。学完本章,你能解释任何一个 URL 为什么落到某一个 Servlet 手里,也能独立完成应用的发布、更新与多主机规划。 学习目标 能画出 Engine、Host、Context、Wrapper 四层容器的嵌套图,并说出每层用什么信息做路由决策。
章节摘要:请求过了城门,进入一座四层嵌套的迷宫——Engine 按主机名选 Host,Host 按路径选 Context,Context 按 Servlet 映射选 Wrapper。本章先拆解这套指路系统与虚拟主机配置,再讲 Web 应用的三种部署方式与标准目录结构,最后精读 web.xml 与 context.xml 两份"应用身份文件"。学完本章,你能解释任何一个 URL 为什么落到某一个 Servlet 手里,也能独立完成应用的发布、更新与多主机规划。
金句:四层容器是四次递减的筛选:从全服务器到一台虚拟主机,到一个应用,到一个 Servlet——每次筛选用不同的信息,URL 的每一段都在这里被消费。
4.1 讲"路怎么指",4.2 讲"住户怎么搬进来",4.3 讲"住户的登记表怎么填"。指路系统认识得越清楚,部署与配置的行为越好解释——比如为什么 WAR 包名就是上下文路径,为什么改 web.xml 要重新部署,答案都在路由匹配的规则里。
4.1 指路系统 4.2 住户入住 4.3 登记表 ┌────────────┐ ┌────────────┐ ┌────────────┐ │ 四层筛选 │ │ 三种部署方式│ │ web.xml │ │ 虚拟主机 │ ────> │ 目录结构 │ ────> │ context.xml│ │ 映射规则 │ │ 热部署行为 │ │ 优先级关系 │ └────────────┘ └────────────┘ └────────────┘ 路由依据 入口与形态 元数据与资源
前置:第 3 章结尾——请求已由 CoyoteAdapter 翻译完毕并补齐映射信息;2.2 的 server.xml 嵌套图(Engine 与 Host 的挂点)。
后续延伸:请求找到 Wrapper 之后,途中还要经过阀门与过滤器——第 5 章讲管道组件,第 6 章讲终点站的执行细节。本章的部署知识直接服务第 7 章的发布故障排查。