第6章 终点站:Servlet生态


文档摘要

第 6 章 · 终点站:Servlet 生态 章节摘要:请求穿过阀门、过滤器前哨,终于抵达终点站。本章讲四件事:过滤器链如何一环环传递控制权、Servlet 从出生到销毁的完整生命周期;JSP 如何被 Jasper 编译成 Servlet(以及首访慢的真相);WebSocket 如何把 HTTP 连接升级成双向通道;Spring Boot 为什么反过来把 Tomcat 装进应用里,内嵌模式与传统部署模式的取舍。学完本章,管道漫游的"进城到终点"全线贯通。 学习目标 能手绘过滤器链的调用栈图,解释 chain 的 doFilter 前后代码的执行时机差异。 能说出 Servlet 生命周期的五个阶段与对应回调,解释初始化参数与启动加载的关系。

第 6 章 · 终点站:Servlet 生态

章节摘要:请求穿过阀门、过滤器前哨,终于抵达终点站。本章讲四件事:过滤器链如何一环环传递控制权、Servlet 从出生到销毁的完整生命周期;JSP 如何被 Jasper 编译成 Servlet(以及首访慢的真相);WebSocket 如何把 HTTP 连接升级成双向通道;Spring Boot 为什么反过来把 Tomcat 装进应用里,内嵌模式与传统部署模式的取舍。学完本章,管道漫游的"进城到终点"全线贯通。

学习目标

  1. 能手绘过滤器链的调用栈图,解释 chain 的 doFilter 前后代码的执行时机差异。
  2. 能说出 Servlet 生命周期的五个阶段与对应回调,解释初始化参数与启动加载的关系。
  3. 能描述 JSP 从源文件到字节码的四级流水线,定位 work 目录中的产物,解释首访慢与预编译方案。
  4. 能写一个最小的 WebSocket 端点并说明连接升级的握手要点。
  5. 能对比传统 WAR 部署与 Spring Boot 内嵌两种形态的运维差异,说出各自适用场景。

核心概念速览

金句:过滤器链是一副弹簧手串——请求顺着链滑到 Servlet,响应再沿原路弹回来,每个环的前置后置代码各执行一次。

子章节导航

  • 6.1 Filter 链与 Servlet 的执行——控制权的接力全程:链的顺序规则、前置后置代码的时机、Servlet 生命周期五阶段。5.1 讲了闸的位置,本节讲闸内机关。
  • 6.2 Jasper:JSP 的编译之旅——从一份 JSP 源文件到可执行字节码的四级流水线,work 目录寻宝,首访慢的量化与预编译解法。
  • 6.3 WebSocket 升级与 Spring Boot 内嵌——连接升级握手、端点编写,以及"容器装进应用"的内嵌模式全解。

子章节之间的逻辑关系

6.1 是终点站的主线(过滤器链与 Servlet 的执行机制),6.2 揭示一个真相——JSP 只是自动生成的 Servlet,编译流水线是它成为 Servlet 的路径,因此必须先懂 6.1 再看 6.2。6.3 的 WebSocket 改写了"一问一答"的请求模型,而 Spring Boot 内嵌则改写了"应用住进容器"的部署关系——两者都是终点站的延伸形态。

6.1 执行机制 6.2 生成路径 6.3 延伸形态 ┌────────────┐ ┌────────────┐ ┌────────────┐ │ 过滤器链 │ │ JSP 源文件 │ │ WebSocket │ │ 生命周期 │ ───> │ 四级流水线 │ ───> │ Spring Boot│ │ 调用栈 │ │ work 产物 │ │ 内嵌容器 │ └────────────┘ └────────────┘ └────────────┘ 手写的 Servlet 生成的 Servlet 不止 Servlet

前置知识与后续延伸

前置:5.1 的两道闸(过滤器在链中的位置)、4.3 的 web.xml(过滤器与 Servlet 的声明处)、6.0 之前最好把 3.2 的线程模型再翻一眼——本章讨论的执行链与线程占用关系密切。

后续延伸:本章是管道漫游的最后一站,第 7 章转入回程与保养——调优、监控、排障、安全加固,全部建立在前六章的管道视图之上。其中 7.4 的慢请求排查会直接引用本章的调用栈知识:线程转储里的每一帧,都能在本章找到对应的环节。若你在做前后端分离架构,6.2 的 JSP 部分可略读,但 6.1 的过滤器机制与 6.3 的内嵌模式仍是必读——前者是所有 Java Web 框架的地基,后者决定你的交付形态。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U