从“会用”到“懂它”,补齐 Web 容器认知的最后一块拼图

在 Java 后端开发领域,许多开发者长期处于“只会用、不会修”的状态。日常工作中,大家习惯依赖 Spring Boot 提供的自动化配置,直接编写业务逻辑,却很少去深究底层 Tomcat 或 Jetty 是如何处理一个 HTTP 请求的。然而,一旦系统出现启动缓慢、内存溢出、线程池满溢或高并发下的性能瓶颈,缺乏底层原理支撑便难以快速定位根因。本课程正是为了解决这一核心痛点而设计,旨在帮助开发者从源码和架构层面深入拆解 Tomcat 与 Jetty 的工作原理。通过系统化的学习,你将不再把容器视为黑盒,而是建立起清晰的请求处理链路认知,从而具备独立排查疑难杂症和优化系统性能的能力。

入门门槛与高效学习路径建议

本课程适合已掌握 Java 基础语法及 Spring Boot 基本使用的开发人员。虽然课程开篇设置了「必备基础」模块,回顾 HTTP 协议细节和 Servlet 规范,但若你对这些概念较为生疏,建议在此阶段投入额外时间夯实基础,避免后续理解架构时出现断层。进入核心阶段后,建议按以下顺序深度学习:首先聚焦「整体架构」模块,深入研读 Tomcat 的连接器(Connector)设计与多层容器(Container)结构,这是理解其请求分流机制的关键;接着,对比分析 Jetty 的 Connector 与 Handler 组件,从中提炼出通用的组件化设计规范,这种对比视角能极大拓宽你的技术视野;最后,务必动手完成「纯手工打造 Servlet」的实战环节,这是理解 Servlet 生命周期最直接的方式。不要跳过任何理论结合实践的步骤,因为容器的复杂性往往藏在细节之中。

学完产出与资料配合策略

完成本门课程后,你将能够独立剖析 Tomcat 的内部启动流程与组件交互逻辑,清晰阐述其与 Jetty 在架构设计上的本质差异,并具备针对 Tomcat 启动速度、线程模型及连接数进行实际调优的能力。为了最大化学习效果,建议配合课程资料包中的源码进行同步阅读。在观看架构解析视频时,最好打开源码,跟随讲解路径定位关键类与接口;在涉及「优化启动速度」的章节,应在本地环境实际配置参数并观察性能变化。通过这种“视频导引+源码验证+环境实操”的闭环学习方式,你能将零散的知识点串联成完整的知识体系,真正掌握 Web 容器开发的底层硬实力。

课程目录

开篇词 (1讲)

  1. 开篇词 _ Java程序员如何快速成长?

模块一 必备基础 (4讲)

  1. 01 _ Web容器学习路径
  2. 02 _ HTTP协议必知必会
  3. 03 _ 你应该知道的Servlet规范和Servlet容器
  4. 04 _ 实战:纯手工打造和运行一个Servlet

模块二 整体架构 (9讲)

  1. 05 _ Tomcat系统架构(上): 连接器是如何设计的?
  2. 06 _ Tomcat系统架构(下):聊聊多层容器的设计
  3. 07 _ Tomcat如何实现一键式启停?
  4. 08 _ Tomcat的“高层们”都负责做什么?
  5. 09 _ 比较:Jetty架构特点之Connector组件
  6. 10 _ 比较:Jetty架构特点之Handler组件
  7. 11 _ 总结:从Tomcat和Jetty中提炼组件化设计规范
  8. 12 _ 实战:优化并提高Tomcat启动速度
  9. 13 _ 热点问题答疑(1):如何学习源码?

模块三 连接器 (9讲)

  1. 14 _ NioEndpoint组件:Tomcat如何实现非阻塞I_O?
  2. 15 _ Nio2Endpoint组件:Tomcat如何实现异步I_O?
  3. 16 _ AprEndpoint组件:Tomcat APR提高I_O性能的秘密
  4. 17 _ Executor组件:Tomcat如何扩展Java线程池?
  5. 18 _ 新特性:Tomcat如何支持WebSocket?
  6. 19 _ 比较:Jetty的线程策略EatWhatYouKill
  7. 20 _ 总结:Tomcat和Jetty中的对象池技术
  8. 21 _ 总结:Tomcat和Jetty的高性能、高并发之道
  9. 22 _ 热点问题答疑(2):内核如何阻塞与唤醒进程?

模块四 容器 (8讲)

  1. 23 _ Host容器:Tomcat如何实现热部署和热加载?
  2. 24 _ Context容器(上):Tomcat如何打破双亲委托机制?
  3. 25 _ Context容器(中):Tomcat如何隔离Web应用?
  4. 26 _ Context容器(下):Tomcat如何实现Servlet规范?
  5. 27 _ 新特性:Tomcat如何支持异步Servlet?
  6. 28 _ 新特性:Spring Boot如何使用内嵌式的Tomcat和Jetty?
  7. 29 _ 比较:Jetty如何实现具有上下文信息的责任链?
  8. 30 _ 热点问题答疑(3):Spring框架中的设计模式

模块五 通用组件 (4讲)

  1. 31 _ Logger组件:Tomcat的日志框架及实战
  2. 32 _ Manager组件:Tomcat的Session管理机制解析
  3. 33 _ Cluster组件:Tomcat的集群通信原理
  4. 特别放送 _ 如何持续保持对学习的兴趣?

模块六 性能优化 (8讲)

  1. 34 _ JVM GC原理及调优的基本思路
  2. 35 _ 如何监控Tomcat的性能?
  3. 36 _ Tomcat I_O和线程池的并发调优
  4. 37 _ Tomcat内存溢出的原因分析及调优
  5. 38 _ Tomcat拒绝连接原因分析及网络优化
  6. 39 _ Tomcat进程占用CPU过高怎么办?
  7. 40 _ 谈谈Jetty性能调优的思路
  8. 41 _ 热点问题答疑(4): Tomcat和Jetty有哪些不同?

结束语 (2讲)

  1. 结束语 _ 静下心来,品味经典
  2. 结课测试 _ 这些Tomcat&Jetty的知识你都掌握了吗?