深入剖析Tomcat pdf

图书网 2018年8月24日08:56:57
评论
2.5K

深入剖析Tomcat 内容简介

《深入剖析Tomcat》深入剖析Tomcat4和Tomcat5中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发Tomcat组件,或者扩展已有的组件。Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。《深入剖析Tomcat》从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。

深入剖析Tomcat 目录

译者序

前言

第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 小结

深入剖析Tomcat 精彩文摘

MBean服务器中保存了应用程序中注册的所有的MBean。管理应用程序通过MBean服务器来访问MBean实例。可以将JMX与servlet应用程序做个类比,管理应用程序的作用类似于Web浏览器,MBean服务器的作用类似于selfMet容器。MBean服务器提供了使客户端,也就是管理应用程序,访问托管资源的方法。MBean实例就好比是servlet类或JSP页面。Web浏览器无法直接访问selfMet实例或JSP页面,必须要通过servlet容器才可以;管理应用程序也必须要通过MBean服务器来访问MBean实例。

共有4种类型的MBean,分别是标准类型、动态类型、开放类型和模型类型。其中标准类型的MBean最容易编写,但灵活性最低。其他3种类型的灵活型较好,其中我们对模型MBean尤其感兴趣,因为Catalina中就使用了这种类型的,MBean标准gBean将在下一节介绍,并展示如何编写一个MBean。然后,会对模型MBean进行讨论。我们会跳过动态MBean和开放Mgean,因为它们与本章内容无关。感兴趣的读者可以阅读./MX规范1.2.1来获取更多详细信息。

从结构上讲,JMX规范分为3层:设备层、代理层和分布式服层。MBean服务器位于代理层,MBean位于设备层。分布式服务层会在JMx规范将来的版本中涉及。

设备层规范定义了编写可由JMx管理的资源的标准,即如何写MBean。代理层定义了创建代理的规范。代理封装了MBean服务器,提供了处理MBean的服务。代理和它所管理的MBean通常都位于同一个Java虚拟机中。由于JMx规范附带了一个参考实现,因此并不需要自己编写M_Bean服务器。参考实现提供了创建默认MBean服务器的方法。

图书网:深入剖析Tomcat pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: