深刻剖析Tomcat

深刻剖析Tomcatjava

下载地址 https://pan.baidu.com/s/1aQqDFkboz39RXSQa-h8zLg缓存

扫码下面二维码关注公众号回复 100147获取分享码
image.png
本书目录结构以下:安全

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

1.1 HTTP1app

1.1.1 HTTP请求1函数

1.1.2 HTTP响应2编码

1.2 Socket类3spa

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