前言
第1章 一个简单的Web服务器
1.1 HTTP
1.1.1 HTTP请求
1.1.2 HTTP响应
1.2 Socket类
1.3 应用程序
1.3.1 HttpServer类
1.3.2 Request类
1.3.3 Response类
1.3.4 运行应用程序
1.4 小结
第2章 一个简单的servlet容器
2.1 javax.servlet.Servlet接口
2.2 应用程序
2.2.1 HttpServer1类
2.2.2 Request类
2.2.3 Response类
2.2.4 StaticResourceProcessor类
2.2.5 servletProcessor1类
2.2.6 运行应用程序
2.3 应用程序
2.4 小结
第3章 连接器
3.1 StringManager类
3.2 应用程序
3.2.1 启动应用程序
3.2.2 HttpConnector类
3.2.3 创建HttpRequest对象
3.2.4 创建HttpResponse对象
3.2.5 静态资源处理器和servlet处理器
3.2.6 运行应用程序
3.3 小结
第4章 Tomcat的默认连接器
4.1 HTTP 1.1的新特性
4.1.1 持久连接
4.1.2 块编码
4.1.3 状态码100的使用
4.2 Connector接口
4.3 HttpConnector类
4.3.1 创建服务器套接字
4.3.2 维护HttpProcessor实例
4.3.3 提供HTTP请求服务
4.4 HttpProcessor类
4.5 Request对象
4.6 Response对象
4.7 处理请求
4.7.1 解析连接
4.7.2 解析请求
4.7.3 解析请求头
4.8 简单的Container应用程序
4.9 小结
第5章 servlet容器
5.1 Container接口
5.2 管道任务
5.2.1 Pipeline接口
5.2.2 Valve接口
5.2.3 ValveContext接口
5.2.4 Contained接口
5.3 Wrapper接口
5.4 Context接口
5.5 Wrapper应用程序
5.5.1 ex05.pyrmont.core.SimpleLoader类
5.5.2 ex05.pyrmont.core.SimplePipeline类
5.5.3 ex05.pyrmont.core.SimpleWrapper类
5.5.4 ex05.pyrmont.core.SimpleWrapperValve类
5.5.5 ex05.pyrmont.valves.ClientIPLoggerValve类
5.5.6 ex05.pyrmont.valves.HeaderLoggerValve类
5.5.7 ex05.pyrmont.startup.Bootstrap
5.5.8 运行应用程序
5.6 Context应用程序
5.6.1 ex05.pyrmont.core.SimpleContextValve类
5.6.2 ex05.pyrmont.core.SimpleContextMapper类
5.6.3 ex05.pyrmont.core.SimpleContext类
5.6.4 ex05.pyrmont.startup.Bootstrap
5.6.5 运行应用程序
5.7 小结
第6章 生命周期
6.1 Lifecycle接口
6.2 LifecycleEvent类
6.3 LifecycleListener接口
6.4 LifecycleSupport类
6.5 应用程序
6.5.1 ex06.pyrmont.core.SimpleContext类
6.5.2 ex06.pyrmont.core.SimpleContextLifecycleListener类
6.5.3 ex06.pyrmont.core.SimpleLoader类
6.5.4 ex06.pyrmont.core.SimplePipeline类
6.5.5 ex06.pyrmont.core.SimpleWrapper类
6.5.6 运行应用程序
6.6 小结
第7章 日志记录器
7.1 Logger接口
7.2 Tomcat的日志记录器
7.2.1 LoggerBase类
7.2.2 SystemOutLogger类
7.2.3 SystemErrLogger类
7.2.4 FileLogger类
7.3 应用程序
7.4 小结
第8章 载入器
8.1 Java的类载入器
8.2 Loader接口
8.3 Reloader接口
8.4 WebappLoader类
8.4.1 创建类载入器
8.4.2 设置仓库
8.4.3 设置类路径
8.4.4 设置访问权限
8.4.5 开启新线程执行类的重新载入
8.5 WebappClassLoader类
8.5.1 类缓存
8.5.2 载入类
8.5.3 应用程序
8.6 运行应用程序
8.7 小结
第9章 Session管理
9.1 Session对象
9.1.1 Session接口
9.1.2 StandardSession类
9.1.3 StandardSessionFacade类
9.2 Manager
9.2.1 Manager接口
9.2.2 ManagerBase类
9.2.3 StandardManager类
9.2.4 PersistentManagerBase类
9.2.5 PersistentManager类
9.2.6 DistributedManager类
9.3 存储器
9.3.1 StoreBase类
9.3.2 FileStore类
9.3.3 BCStore类
9.4 应用程序
9.4.1 Bootstrap类
9.4.2 SimpleWrapperValve类
9.4.3 运行应用程序
9.5 小结
第10章 安全性
10.1 领域
10.2 GenericPrincipal类
10.3 LoginConfig类
10.4 Authenticator接口
10.5 安装验证器阀
10.6 应用程序
10.6.1 ex10.pyrmont.core.SimpleContextConfig类
10.6.2 ex10.pyrmont.realm.SimpleRealm类
10.6.3 ex10.pyrmont.realm.SimpleUserDatabaseRealm
10.6.4 ex10.pyrmont.startup.Bootstrap1类
10.6.5 ex10.pyrmont.startup.Bootstrap2类
10.6.6 运行应用程序
10.7 小结
第11章 StandardWrapper
11.1 方法调用序列
11.2 SingleThreadModel
11.3 StandardWrapper
11.3.1 分配servlet实例
11.3.2 载入servlet类
11.3.3 ServletConfig对象
11.3.4 servlet容器的父子关系
11.4 StandardWrapperFacade类
11.5 StandardWrapperValve类
11.6 FilterDef类
11.7 ApplicationFilterConfig类
11.8 ApplicationFilterChain类
11.9 应用程序
11.10 小结
第12章 StandardContext类
12.1 StandardContext的配置
12.1.1 StandardContext类的构造函数
12.1.2 启动StandardContext实例
12.1.3 invoke方法
12.2 StandardContextMapper类
12.3 对重载的支持
12.4 backgroundProcess方法
12.5 小结
第13章 Host和Engine
13.1 Host接口
13.2 StandardHost类
13.3 StandardHostMapper类
13.4 StandardHostValve类
13.5 为什么必须要有一个Host容器
13.6 应用程序1
13.7 Engine接口
13.8 StandardEngine类
13.9 StandardEngineValve类
13.10 应用程序2
13.11 小结
第14章 服务器组件和服务组件
14.1 服务器组件
14.2 StandardServer类
14.2.1 initialize方法
14.2.2 start方法
14.2.3 stop方法
14.2.4 await方法
14.3 Service接口
14.4 StandardService类
14.4.1 connector和container
14.4.2 与生命周期有关的方法
14.5 应用程序
14.5.1 Bootstrap类
14.5.2 Stopper类
14.5.3 运行应用程序
14.6 小结
第15章 Digester库
15.1 Digester库
15.1.1 Digester类
15.1.2 Digester库示例1
15.1.3 Digester库示例2
15.1.4 Rule类
15.1.5 Digester库示例3:使用RuleSet
15.2 ContextConfig类
15.2.1 defaultConfig方法
15.2.2 applicationConfig方法
15.2.3 创建Web Digester
15.3 应用程序
15.4 小结
第16章 关闭钩子
16.1 关闭钩子的例子
16.2 Tomcat中的关闭钩子
16.3 小结
第17章 启动Tomcat
17.1 Catalina类
17.1.1 start方法
17.1.2 stop方法
17.1.3 启动Digester对象
17.1.4 关闭Digester对象
17.2 Bootstrap类
17.3 在Windows平台上运行Tomcat
17.3.1 如何编写批处理文件
17.3.2 catalina.bat批处理文件
17.3.3 在Windows平台上启动Tomcat
17.3.4 在Windows平台上关闭Tomcat
17.4 在Linux平台上运行Tomcat
17.4.1 如何编写UNIX/Linux Shell脚本
17.4.2 catalina.sh脚本
17.4.3 在UNIX/Linux平台上启动Tomcat
17.4.4 在UNIX/Linux平台上关闭Tomcat
17.5 小结
第18章 部署器
18.1 部署一个Web应用程序
18.1.1 部署一个描述符
18.1.2 部署一个WAR文件
18.1.3 部署一个目录
18.1.4 动态部署
18.2 Deploy接口
18.3 StandardHostDeployer类
18.3.1 安装一个描述符
18.3.2 安装一个WAR文件或目录
18.3.3 启动Context实例
18.3.4 停止一个Context实例
18.4 小结
第19章 Manager应用程序的servlet类
19.1 使用Manager应用程序
19.2 Containerservlet接口
19.3 初始化ManagerServlet
19.4 列出已经部署的Web应用程序
19.5 启动Web应用程序
19.6 关闭Web应用程序
19.7 小结
第20章 基于JMX的管理
20.1 JMX简介
20.2 JMX API
20.2.1 MBeanServer类
20.2.2 ObjectName类
20.3 标准MBea
20.4 模型MBea
20.4.1 MBeanInfo接口与ModelMBeanInfo接口
20.4.2 ModelMBean示例
20.5 Commons Modeler库
20.5.1 MBean描述符
20.5.2 mbean元素示例
20.5.3 自己编写一个模型 MBean类
20.5.4 Registry类
20.5.5 ManagedBea
20.5.6 BaseModelMBea
20.5.7 使用Modeler库API
20.6 Catalian中的MBea
20.6.1 ClassNameMBean类
20.6.2 StandardServerMBean类
20.6.3 MBeanFactory类
20.6.4 MBeanUtil
20.7 创建Catalina的MBea
20.8 应用程序
20.9 小结