图书目录

为什么要写这本书

本书读者对象

背景知识

如何阅读本书

勘误和支持

致谢

第1章 Tomcat架构原理

1.1 Tomcat 到底是什么

1.2 Tomcat 架构概览

1.3 Tomcat 配置文件

1.4 Tomcat 源码结构

1.5 小结

第2章 Tomcat架构设计思维

2.1 自顶向下分析Tomcat架构

2.2 自底向上分析Tomcat架构

2.3 面向对象设计Tomcat架构

2.4小结

第3章 Tomcat生命周期原理

3.1 生命周期管理接口Lifecycle原理

3.2 生命周期状态接口Lifecycle原理

3.3 生命周期函数与组件状态转换原理

3.4 生命周期监听器与事件类原理

3.4.1 生命周期事件

3.4.2 生命周期监听器

3.5 生命周期模板类实现原理

3.6 生命周期实例

3.7 Tomcat生命周期与JMX原理

3.8 核心监听器原理

3.9 小结

第4章  Tomcat容器原理

4.1容器接口定义

4.2容器生命周期事件与监听器原理

4.3容器模板类实现原理

4.3.1实例变量实现原理

4.3.2属性操作方法实现原理

4.3.3容器操作方法实现原理

4.3.4后台周期执行操作方法实现原理

4.3.5 JMX注册支持方法实现原理

4.4小结

第5章 Tomcat启动器原理

5.1独立启动器原理

5.1.1 文件原理

5.1.2 Bootstrap启动类描述

5.1.3 Catalina核心类描述

5.1.4 SystemLogHandler类原理

5.2内嵌启动器原理

5.2.1 AbstractApplicationContext 类refresh方法

5.2.2 ServletWebServerApplicationContext 类onRefresh方法

5.2.3 ServletWebServerApplicationContext 类createWebServer方法

5.2.4 TomcatServletWebServerFactory 类getWebServer方法

5.2.5 Tomcat 类核心变量与构造器

5.2.6 Tomcat 类方法

5.3小结

第6章 Tomcat类加载器原理

6.1 Java类加载器原理

6.1.1 Java类加载器层级结构

6.1.2 Java双亲委派机制原理

6.1.3 Java ClassLoader类原理

6.1.4 Java URLClassLoader类原理

6.1.5 Java 双亲委派机制的打破

6.1.6 Java 自定义类加载器

6.2 Tomcat 类加载器层级结构与定义

6.3 Tomcat 顶层类加载器源码分析

6.4 Tomcat 应用层类加载器源码分析

6.5 小结

第7章 Tomcat Server服务器原理

7.1 Tomcat Server 接口定义

7.2 Tomcat Server 接口实现

7.2.1 StandardServer 属性和构造器定义

7.2.2 StandardServer 核心方法

7.2.3 StandardServer 生命周期方法

7.3 小结

第8章 Tomcat Service服务原理

8.1 Tomcat Service 接口定义

8.2 Tomcat Service 接口实现

8.2.1 核心属性和构造器原理

8.2.2 核心方法

8.2.3 生命周期方法

8.3 MapperListener原理

8.4 Mapper原理

8.4.1 核心变量与构造器原理

8.4.2 核心内部类原理

8.4.3 Mapper核心方法

8.5 小结

第9章 Tomcat Connector连接器原理

9.1 Connector 核心属性与构造器

9.2 Connector ProtocolHandler 协议初始化原理

9.3 Connector 生命周期方法

9.3.1 initInternal原理

9.3.2 startInternal原理

9.3.3 stopInternal原理

9.3.4 destroyInternal原理

9.4 小结

第10章 Tomcat ProtocolHandler协议处理器原理

10.1 ProtocolHandler 接口定义

10.2 AbstractProtocol原理

10.2.1 构造函数和核心变量

10.2.2 生命周期函数

10.2.3 核心支撑内部类

10.3 AbstractHttp11Protocol原理

10.3.1 构造函数和核心变量

10.3.2 套接字处理器创建原理

10.4 AbstractHttp11JsseProtocol原理

10.5 Http11NioProtocol原理

10.6 小结

第11章 Tomcat Endpoint端点类原理

11.1 AbstractEndpoint 类核心原理

11.1.1 核心变量

11.1.2 核心方法

11.1.3 startAcceptorThreads接收连接线程启动原理

11.1.4 生命周期函数

11.1.5 核心内部类

11.2 NioEndPoint 类核心原理

11.2.1核心变量原理

11.2.2 bind方法端口绑定原理

11.2.3 unbind方法端口解绑原理

11.2.4 startInternal方法端点启动执行过程

11.2.5 stopInternal方法端点停止执行过程

11.2.6 setSocketOptions方法客户端套接字执行过程

11.2.7 核心内部类

11.3 Nio2EndPoint 类核心原理

11.3.1 核心变量和构造器原理

11.3.2 bind方法端口绑定原理

11.3.3 Nio2EndPoint 类核心方法之unbind端口解绑原理

11.3.4 startInternal方法端点启动原理

11.3.5 stoptInternal方法端点停止原理

11.3.6 setSocketOptions方法客户端套接字执行过程

11.3.7 核心内部类之Acceptor类原理

11.3.8 核心内部类之Nio2SocketWrapper类原理

11.3.9 核心内部类之SocketProcessor类原理

11.3.10 核心内部类之SendfileData类原理

11.4小结

第12章 Tomcat Processor协议处理原理

12.1 Processor接口定义

12.2 AbstractProcessorLight 协议模板类实现原理

12.3 AsyncStateMachine 协议处理状态机实现原理

12.4 AbstractProcessor 协议模板类实现原理

12.5 Http11Processor 协议类实现原理

12.6 Request请求类原理

12.7 Response响应类原理

12.8 InputBuffer输入缓冲区原理

12.9 OutputBuffer输出缓冲区原理

12.10 Tomcat Adaptor适配器原理

12.11 Tomcat HttpServletRequest与HttpServletResponse实现类原理

12.12小结

第13章 Tomcat Pipeline流水线原理

13.1 Pipeline 接口原理

13.2 StandardPipeline 实现类原理

13.3 Valve接口原理

13.4 ValveBase抽象类原理

13.5 StandardEngineValve 原理

13.6 StandardHostValve 原理

13.7 StandardContextValve原理

13.8 StandardWrapperValve 原理

13.9 ApplicationFilterChain原理

13.10 小结

第14章 Tomcat Engine原理

14.1 Tomcat Engine 接口定义

14.2 StandardEngine 核心变量属性与构造器原理

14.3 StandardEngine 核心方法之Realm操作原理

14.4 StandardEngine 核心方法之Host操作原理

14.5 StandardEngine 核心方法之日志操作原理

14.6 StandardEngine 生命周期方法之initInternal实现原理

14.7 StandardEngine 生命周期方法之startInternal实现原理

14.8 EngineConfig 配置类原理

14.9小结

第15章 Tomcat Host原理

15.1 Tomcat Host 接口定义

15.2 StandardHost 核心变量属性与构造器原理

15.3 StandardHost 核心方法之AppBase与ConfigBase操作原理

15.4 StandardHost 核心方法之alias别名操作原理

15.5 StandardHost 容器生命周期方法之addChild实现原理

15.6 StandardHost 生命周期方法之ContextMemoryLeaks实现原理

15.7 StandardHost 组件生命周期方法之startInternal实现原理

15.8 HostConfig 配置类原理

15.8.1 核心变量与构造器

15.8.2 lifecycleEvent方法

15.8.3 beforeStart方法

15.8.4 start方法

15.8.5 deployApps方法

15.8.6 deployDescriptors方法

15.8.7 deployDescriptor方法

15.8.8 DeployedApplication内部类

15.8.9 addWatchedResources方法

15.8.10 addGlobalRedeployResources方法

15.8.11 deployWARs方法

15.8.12 deployDirectories方法

15.8.13 stop方法

15.8.14 check方法

15.8.15 checkResources方法

15.8.16 reload方法

15.8.17 checkUndeploy方法

15.8.18 undeploy方法

15.9总结

第16章 Tomcat Context原理

16.1 Tomcat Context 接口实现

16.2 StandardContext 核心变量属性与构造器原理

16.3 StandardContext 生命周期方法

16.3.1 initInternal实现原理

16.3.2 startInternal实现原理

16.3.3 stopInternal实现原理

16.3.4 destroyInternal实现原理

16.4 StandardContext 核心方法

16.4.1postWorkDirectory原理

16.5 WebResourceRoot 根资源原理

16.5.1 生命周期方法

16.5.2 核心方法

16.6 WebResourceSet 资源集原理

16.7 WebResource 资源原理

16.7.1 AbstractResource类

16.7.2 JarResourceRoot类

16.7.3 AbstractArchiveResource类

16.7.4 AbstractSingleArchiveResource类

16.7.5 WarResource类

16.7.6 JarResource

16.7.7 JarWarResource

16.7.8 FileResource

16.7.9 CachedResource

16.7.10 EmptyResource

16.7.11 VirtualResource

16.8 WebappLoader 加载器原理

16.9 WebappClassLoaderBase 类加载器原理

16.10 WebappClassLoaderBase 类核心方法

16.10.1 构造器原理

16.10.2 start启动原理

16.10.3 stop停止原理

16.10.4 clearReferences原理

16.10.5 cclearReferencesJdbc原理

16.10.6 cclearReferencesThreads原理

16.10.7 ccheckThreadLocalsForLeaks原理

16.10.8 loadClass原理

16.10.9 findClass原理

16.10.10 getResource原理

16.10.11 modified原理

16.11 Manager Session管理器原理

16.11.1 Manager接口

16.11.2 ManagerBase抽象类

16.11.3 ClusterManager接口

16.11.4 ClusterManagerBase抽象类

16.11.5 BackupManager与DeltaManager实现类

16.11.6 PersistentManagerBase抽象类

16.11.7 PersistentManager实现类

16.11.8 StandardManager实现类

16.12 Session 会话原理

16.12.1 StandardSession类

16.12.2 DeltaSession类

16.12.3 DummyProxySession类

16.13 InstanceManager 实例管理器原理

16.13.1 SimpleInstanceManager类

16.13.2 DefaultInstanceManager类

16.14 ApplicationContext 应用上下文原理

16.14.1 核心变量定义和构造器

16.14.2 getRequestDispatcher方法原理

16.14.3 getContext方法原理

16.15 StandardContext 核心方法

16.15.1 backgroundProcess周期方法原理

16.15.2 reload方法原理

16.15.3 ApplicationListener操作方法原理

16.15.4 ServletMapping操作方法原理

16.15.5 Filter操作方法原理

16.15.6 loadOnStartup操作方法原理

16.16 ContextConifg原理

16.16.1 构造器与核心变量

16.16.2 lifecycleEvent方法原理

16.16.3 init方法原理

16.16.4 beforeStart方法原理

16.16.5 configureStart方法原理

16.16.6 configureStop方法原理

16.16.7 destroy方法原理

16.17小结

第17章 Tomcat Wrapper原理

17.1 StandardWrapper 核心变量属性与构造器原理

17.2 StandardWrapper 生命周期方法

17.2.1 startInternal实现原理

17.2.2 stopInternal实现原理

17.3 StandardWrapper 核心方法

17.3.1 load方法实现原理

17.3.2 unload方法实现原理

17.3.3 initServlet方法实现原理

17.3.4 allocate方法实现原理

17.3.5 loadServlet方法实现原理

17.3.6 deallocate方法实现原理

17.3.7 backgroundProcess方法实现原理

17.4小结