《深入剖析Tomcat》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)克尼亚万,(美)德克著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111369974
  • 页数:342 页
图书介绍:Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。本书从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。

第1章 一个简单的Web服务器 1

1.1 HTTP 1

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应用程序1 16

2.2.1 HttpServerl类 17

2.2.2 Request类 19

2.2.3 Response类 21

2.2.4 StaticResourceProcessor类 23

2.2.5 servletProcessorl类 24

2.2.6运行应用程序 27

2.3应用程序2 27

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.Bootstrapl 82

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.Bootstrap2 89

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 Manager 130

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 exl0.pyrmont.core.SimpleContextConfig类 147

10.6.2 exl0.pyrmont.realm.SimpleRealm类 149

10.6.3 exl0.pyrmont.realm.SimpleUserDatabaseRealm 152

10.6.4 exl0.pyrmont.startup.Bootstrap1类 154

10.6.5 exl0.pyrmont.startup.Bootstrap2类 156

10.6.6运行应用程序 158

10.7小结 158

第11章StandardWrapper 159

11.1方法调用序列 159

11.2 SingleThreadModel 160

11.3 StandardWrapper 161

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和Engine 191

13.1 Host接口 191

13.2 StandardHost类 193

13.3 StandardHostMapper类 195

13.4 StandardHostValve类 196

13.5为什么必须要有一个Host容器 197

13.6应用程序1 198

13.7 Engine接口 199

13.8 StandardEngine类 201

13.9 StandardEngineValve类 201

13.10应用程序2 202

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和container 211

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库示例1 225

15.1.3 Digester库示例2 227

15.1.4 Rule类 230

15.1.5 Digester库示例3:使用RuleSet 232

15.2 ContextConfig类 234

15.2.1 defaultConfig()方法 236

15.2.2 applicationConfig()方法 238

15.2.3创建Web Digester 239

15.3应用程序 243

15.4小结 244

第16章 关闭钩子 245

16.1关闭钩子的例子 246

16.2 Tomcat中的关闭钩子 250

16.3小结 250

第17章 启动Tomcat 251

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平台上运行Tomcat 264

17.3.1如何编写批处理文件 264

17.3.2 catalina.bat批处理文件 267

17.3.3在Windows平台上启动Tomcat 276

17.3.4在Windows平台上关闭Tomcat 277

17.4在Linux平台上运行Tomcat 278

17.4.1如何编写UNLXC/Linux Shell脚本 278

17.4.2 catalina.sh脚本 283

17.4.3在UNIX/Linux平台上启动Tomcat 288

17.4.4在UNIX/Linux平台上关闭Tomcat 289

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初始化ManagerServlet 309

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 API 316

20.2.1 MBeanServer类 316

20.2.2 ObjectName类 317

20.3标准MBean 318

20.4模型MBean 321

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 ManagedBean 329

20.5.6 BaseModelMBean 329

20.5.7使用Modeler库API 330

20.6 Catalian中的MBean 332

20.6.1 ClassNameMBean类 333

20.6.2 StandardServerMBean类 333

20.6.3 MBeanFactory类 334

20.6.4 MBeanUtil 335

20.7创建Catalina的MBean 335

20.8应用程序 339

20.9小结 342