深入剖析 Tomcat PDF 文档

发布于 2023-10-23 19:39:06 字数 8592 浏览 47 评论 0

本书深入剖析 Tomcat 4 和 Tomcat 5 中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发 Tomcat 组件,或者扩展已有的组件。 Tomcat 是目前比较流行的 Web 服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但 Tomcat 本身是一个非常复杂的系统,包含了很多功能模块。

这些功能模块构成了 Tomcat 的核心结构。本书从最基本的 HTTP 请求开始,直至使用 JMX 技术管理 Tomcat 中的应用程序,逐一剖析 Tomcat 的基本功能模块,并配以示例代码,使读者可以逐步实现自己的 Web 服务器。

第 1 章 一个简单的 Web 服务器 1
1.1 HTTP1
1.1.1 HTTP 请求 1
1.1.2 HTTP 响应 2
1.2 Socket 类 3
1.3 应用程序 5
1.3.1 HttpServer 类 5
1.3.2 Request 类 8
1.3.3 Response 类 10
1.3.4 运行应用程序 12
1.4 小结 13
第 2 章 一个简单的 servlet 容器 14
2.1 javax.servlet.Servlet 接口 14
2.2 应用程序 116
2.2.1 HttpServer1 类 17
2.2.2 Request 类 19
2.2.3 Response 类 21
2.2.4 StaticResourceProcessor 类 23
2.2.5 servletProcessor1 类 24
2.2.6 运行应用程序 27
2.3 应用程序 227
2.4 小结 30
第 3 章 连接器 31
3.1 StringManager 类 31
3.2 应用程序 33
3.2.1 启动应用程序 35
3.2.2 HttpConnector 类 36
3.2.3 创建 HttpRequest 对象 38
3.2.4 创建 HttpResponse 对象 49
3.2.5 静态资源处理器和 servlet 处理器 50
3.2.6 运行应用程序 50
3.3 小结 52
第 4 章 Tomcat 的默认连接器 53
4.1 HTTP 1.1 的新特性 54
4.1.1 持久连接 54
4.1.2 块编码 54
4.1.3 状态码 100 的使用 55
4.2 Connector 接口 55
4.3 HttpConnector 类 56
4.3.1 创建服务器套接字 56
4.3.2 维护 HttpProcessor 实例 56
4.3.3 提供 HTTP 请求服务 57
4.4 HttpProcessor 类 58
4.5 Request 对象 61
4.6 Response 对象 62
4.7 处理请求 62
4.7.1 解析连接 65
4.7.2 解析请求 65
4.7.3 解析请求头 65
4.8 简单的 Container 应用程序 66
4.9 小结 70
第 5 章 servlet 容器 71
5.1 Container 接口 71
5.2 管道任务 73
5.2.1 Pipeline 接口 76
5.2.2 Valve 接口 76
5.2.3 ValveContext 接口 76
5.2.4 Contained 接口 77
5.3 Wrapper 接口 77
5.4 Context 接口 78
5.5 Wrapper 应用程序 78
5.5.1 ex05.pyrmont.core.SimpleLoader 类 78
5.5.2 ex05.pyrmont.core.SimplePipeline 类 79
5.5.3 ex05.pyrmont.core.SimpleWrapper 类 79
5.5.4 ex05.pyrmont.core.SimpleWrapperValve 类 80
5.5.5 ex05.pyrmont.valves.ClientIPLoggerValve 类 81
5.5.6 ex05.pyrmont.valves.HeaderLoggerValve 类 81
5.5.7 ex05.pyrmont.startup.Bootstrap182
5.5.8 运行应用程序 84
5.6 Context 应用程序 84
5.6.1 ex05.pyrmont.core.SimpleContextValve 类 87
5.6.2 ex05.pyrmont.core.SimpleContextMapper 类 87
5.6.3 ex05.pyrmont.core.SimpleContext 类 89
5.6.4 ex05.pyrmont.startup.Bootstrap289
5.6.5 运行应用程序 91
5.7 小结 92
第 6 章 生命周期 93
6.1 Lifecycle 接口 93
6.2 LifecycleEvent 类 94
6.3 LifecycleListener 接口 94
6.4 LifecycleSupport 类 95
6.5 应用程序 97
6.5.1 ex06.pyrmont.core.SimpleContext 类 97
6.5.2 ex06.pyrmont.core.SimpleContextLifecycleListener 类 100
6.5.3 ex06.pyrmont.core.SimpleLoader 类 101
6.5.4 ex06.pyrmont.core.SimplePipeline 类 101
6.5.5 ex06.pyrmont.core.SimpleWrapper 类 101
6.5.6 运行应用程序 103
6.6 小结 104
第 7 章 日志记录器 105
7.1 Logger 接口 105
7.2 Tomcat 的日志记录器 106
7.2.1 LoggerBase 类 106
7.2.2 SystemOutLogger 类 107
7.2.3 SystemErrLogger 类 107
7.2.4 FileLogger 类 108
7.3 应用程序 111
7.4 小结 112
第 8 章 载入器 113
8.1 Java 的类载入器 113
8.2 Loader 接口 114
8.3 Reloader 接口 116
8.4 WebappLoader 类 116
8.4.1 创建类载入器 117
8.4.2 设置仓库 118
8.4.3 设置类路径 118
8.4.4 设置访问权限 118
8.4.5 开启新线程执行类的重新载入 118
8.5 WebappClassLoader 类 120
8.5.1 类缓存 120
8.5.2 载入类 121
8.5.3 应用程序 121
8.6 运行应用程序 124
8.7 小结 124
第 9 章 Session 管理 125
9.1 Session 对象 126
9.1.1 Session 接口 126
9.1.2 StandardSession 类 127
9.1.3 StandardSessionFacade 类 129
9.2 Manager130
9.2.1 Manager 接口 130
9.2.2 ManagerBase 类 131
9.2.3 StandardManager 类 132
9.2.4 PersistentManagerBase 类 133
9.2.5 PersistentManager 类 135
9.2.6 DistributedManager 类 135
9.3 存储器 136
9.3.1 StoreBase 类 137
9.3.2 FileStore 类 138
9.3.3 JDBCStore 类 139
9.4 应用程序 139
9.4.1 Bootstrap 类 139
9.4.2 SimpleWrapperValve 类 140
9.4.3 运行应用程序 141
9.5 小结 142
第 10 章 安全性 143
10.1 领域 143
10.2 GenericPrincipal 类 144
10.3 LoginConfig 类 145
10.4 Authenticator 接口 145
10.5 安装验证器阀 146
10.6 应用程序 147
10.6.1 ex10.pyrmont.core.SimpleContextConfig 类 147
10.6.2 ex10.pyrmont.realm.SimpleRealm 类 149
10.6.3 ex10.pyrmont.realm.SimpleUserDatabaseRealm152
10.6.4 ex10.pyrmont.startup.Bootstrap1 类 154
10.6.5 ex10.pyrmont.startup.Bootstrap2 类 156
10.6.6 运行应用程序 158
10.7 小结 158
第 11 章 StandardWrapper159
11.1 方法调用序列 159
11.2 SingleThreadModel160
11.3 StandardWrapper161
11.3.1 分配 servlet 实例 162
11.3.2 载入 servlet 类 164
11.3.3 ServletConfig 对象 167
11.3.4 servlet 容器的父子关系 169
11.4 StandardWrapperFacade 类 170
11.5 StandardWrapperValve 类 171
11.6 FilterDef 类 172
11.7 ApplicationFilterConfig 类 174
11.8 ApplicationFilterChain 类 175
11.9 应用程序 175
11.10 小结 177
第 12 章 StandardContext 类 178
12.1 StandardContext 的配置 178
12.1.1 StandardContext 类的构造函数 179
12.1.2 启动 StandardContext 实例 179
12.1.3 invoke() 方法 183
12.2 StandardContextMapper 类 184
12.3 对重载的支持 187
12.4 backgroundProcess() 方法 188
12.5 小结 190
第 13 章 Host 和 Engine191
13.1 Host 接口 191
13.2 StandardHost 类 193
13.3 StandardHostMapper 类 195
13.4 StandardHostValve 类 196
13.5 为什么必须要有一个 Host 容器 197
13.6 应用程序 1198
13.7 Engine 接口 199
13.8 StandardEngine 类 201
13.9 StandardEngineValve 类 201
13.10 应用程序 2202
13.11 小结 203
第 14 章 服务器组件和服务组件 204
14.1 服务器组件 204
14.2 StandardServer 类 206
14.2.1 initialize() 方法 206
14.2.2 start() 方法 207
14.2.3 stop() 方法 207
14.2.4 await() 方法 208
14.3 Service 接口 209
14.4 StandardService 类 211
14.4.1 connector 和 container211
14.4.2 与生命周期有关的方法 213
14.5 应用程序 215
14.5.1 Bootstrap 类 215
14.5.2 Stopper 类 217
14.5.3 运行应用程序 218
14.6 小结 219
第 15 章 Digester 库 220
15.1 Digester 库 221
15.1.1 Digester 类 221
15.1.2 Digester 库示例 1225
15.1.3 Digester 库示例 2227
15.1.4 Rule 类 230
15.1.5 Digester 库示例 3:使用 RuleSet232
15.2 ContextConfig 类 234
15.2.1 defaultConfig() 方法 236
15.2.2 applicationConfig() 方法 238
15.2.3 创建 Web Digester239
15.3 应用程序 243
15.4 小结 244
第 16 章 关闭钩子 245
16.1 关闭钩子的例子 246
16.2 Tomcat 中的关闭钩子 250
16.3 小结 250
第 17 章 启动 Tomcat251
17.1 Catalina 类 251
17.1.1 start() 方法 253
17.1.2 stop() 方法 256
17.1.3 启动 Digester 对象 256
17.1.4 关闭 Digester 对象 258
17.2 Bootstrap 类 259
17.3 在 Windows 平台上运行 Tomcat264
17.3.1 如何编写批处理文件 264
17.3.2 catalina.bat 批处理文件 267
17.3.3 在 Windows 平台上启动 Tomcat276
17.3.4 在 Windows 平台上关闭 Tomcat277
17.4 在 Linux 平台上运行 Tomcat278
17.4.1 如何编写 UNIX/Linux Shell 脚本 278
17.4.2 catalina-sh 脚本 283
17.4.3 在 UNIX/Linux 平台上启动 Tomcat288
17.4.4 在 UNIX/Linux 平台上关闭 Tomcat289
17.5 小结 290
第 18 章 部署器 291
18.1 部署一个 Web 应用程序 291
18.1.1 部署一个描述符 294
18.1.2 部署一个 WAR 文件 295
18.1.3 部署一个目录 297
18.1.4 动态部署 297
18.2 Deploy 接口 299
18.3 StandardHostDeployer 类 302
18.3.1 安装一个描述符 303
18.3.2 安装一个 WAR 文件或目录 304
18.3.3 启动 Context 实例 305
18.3.4 停止一个 Context 实例 306
18.4 小结 306
第 19 章 Manager 应用程序的 servlet 类 307
19.1 使用 Manager 应用程序 307
19.2 Containerservlet 接口 309
19.3 初始化 ManagerServlet309
19.4 列出已经部署的 Web 应用程序 311
19.5 启动 Web 应用程序 312
19.6 关闭 Web 应用程序 313
19.7 小结 314
第 20 章 基于 JMX 的管理 315
20.1 JMX 简介 315
20.2 JMX API316
20.2.1 MBeanServer 类 316
20.2.2 ObjectName 类 317
20.3 标准 MBean318
20.4 模型 MBean321
20.4.1 MBeanInfo 接口与 ModelMBeanInfo 接口 322
20.4.2 ModelMBean 示例 323
20.5 Commons Modeler 库 326
20.5.1 MBean 描述符 327
20.5.2 mbean 元素示例 328
20.5.3 自己编写一个模型 MBean 类 329
20.5.4 Registry 类 329
20.5.5 ManagedBean329
20.5.6 BaseModelMBean329
20.5.7 使用 Modeler 库 API330
20.6 Catalian 中的 MBean332
20.6.1 ClassNameMBean 类 333
20.6.2 StandardServerMBean 类 333
20.6.3 MBeanFactory 类 334
20.6.4 MBeanUtil335
20.7 创建 Catalina 的 MBean335
20.8 应用程序 339
20.9 小结 342

下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/10/KEgyO9pE1QrrOzo4.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

daid

文章 0 评论 0

我心依旧

文章 0 评论 0

晒暮凉

文章 0 评论 0

微信用户

文章 0 评论 0

DS

文章 0 评论 0

〆凄凉。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文