深入剖析Tomcat
Budi Kurniawan,Paul Deck 著,曹旭东 译
- 出版社: 机械工业出版社
- ISBN:9787111369974
- 版次:1
- 商品编码:10913619
- 品牌:机工出版
- 包装:平装
- 开本:16开
- 出版时间:2012-02-01
- 用纸:胶版纸
- 页数:342
内容简介
《深入剖析Tomcat》深入剖析Tomcat4和Tomcat5中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发Tomcat组件,或者扩展已有的组件。Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。《深入剖析Tomcat》从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。
作者简介
Budi Kurniawan是《Java for Web With Servlets, JSP and EJB》的作者,同时也是一位IT咨询师,主要研究方向包括互联网与面向对象程序设计。除了其他一些计算机图书,他已经在10多种出版物上发表了约100篇文章,其中包括一些享有盛誉的Java杂志,如《Java.net》、《JavaPro》、《JavaWorld》等。Budi也是Brainysoftware.com的应用程序File Upload Bean的作者,在世界范围内很多公司都获得授权并使用该应用程序。
Paul Deck是一个有15多年经验的IT架构师,参与了很多项目的开发,这些项目遍布在美国、加拿大、中国和澳大利亚。他喜欢旅行,对网络、互联网编程、设计模式和用户界面交互设计非常感兴趣。
目录
译者序
前言
第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 JDBCStore类
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 标准MBean
20.4 模型MBean
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 ManagedBean
20.5.6 BaseModelMBean
20.5.7 使用Modeler库API
20.6 Catalian中的MBean
20.6.1 ClassNameMBean类
20.6.2 StandardServerMBean类
20.6.3 MBeanFactory类
20.6.4 MBeanUtil
20.7 创建Catalina的MBean
20.8 应用程序
20.9 小结