深入剖析Tomcat.pdf

深入剖析Tomcat.pdf
 

书籍描述

编辑推荐
《深入剖析Tomcat》编辑推荐:深入理解Tomcat的必读之作,欲知其然,更欲知其所以然。
《深入剖析Tomcat》以Tomcat 4和Tomcat 5两个版本为基础,从建立一个最简单的连接开始,深入介绍Tomcat的体系结构。从连接器到最终的JMX管理,循序渐进,层层深入。每一章有配有相关代码,既是对理论内容的具体展现,也可以帮助读者编写一个实用的应用服务器。
在内容上,《深入剖析Tomcat》更关注对Tomcat基本体系结构的讲解,并没有涉及在实际应用中的具体实现细节。希望读者在阅读的时候,着重把握Torrical的一些设计思想,在此基础上,再针对某一方面进行深入的学习和研究。
《深入剖析Tomcat》深入剖析Tomcat 4和Tomcat 5中的每个组件,并揭示其内部工作原理。通过学习《深入剖析Tomcat》,你不仅可以自行开发Tomcat组件,而且可以扩展已有的组件。《深入剖析Tomcat》主要内容:如何开发Java Web服器。Tomcat是否会为每个servlet类创建多个实例。Tomcat如何运行一个实现Simple Thread Model接El的servlet类。servlet容器的两个主要模块:连接器和servlet容器。如何构建或者扩展已有的连接器。4种servlet容器:Engine、Host、Context和Wrapper。T0mcat如何管理Session,以及如何在分布式环境下扩展Session管理器。Tomcat中的类载入器和如何创建自定义载入器。Tomcat如何实现安全性和基本/基于表单/摘要的身份验证。Tomcat中的领域与登录配置是如何工作的。Tomcat如何处理配制文件(server.xml),以及如何通过Digester库将XML元素转换Java对象。Tomcat中的关闭钩子。JMX、Apache的Commons Modeler和Tomcat中的JMX托管资源。

作者简介
作者:(美国)克尼亚万(Bubi Kurniawan) (美国)德克(Paul Deck) 译者:曹旭东

克尼亚万,(Budi Kurniawan)是《Java for Web With Servlets, JSP and EJB》的作者,同时也是一位IT咨询师,主要研究方向包括互联网与面向对象程序设计。除了其他一些计算机图书,他已经在10多种出版物上发表了约100篇文章,其中包括一些享有盛誉的Java杂志,如《Java.net》、《JavaPro》、《JavaWorld》等。Budi也是Brainysoftware的应用程序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 HTTP1.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.1 0小结

第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.1 0应用程序2
13.1 1小结

第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:使用Rule Set
15.2 Context Config类
15.2.1 default Config()方法
15.2.2 application Config()方法
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 Standard Host Deployer类
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 初始化Manager Servlet
19.4 列出已经部署的Web应用程序
19.5 启动Web应用程序
19.6 关闭Web应用程序
19.7 小结

第20章 基于JMX的管理
20.1 JMX简介
20.2 JMXAPI
20.2.1 MBean Server类
20.2.2 ObjectName类
20.3 标准MBean
20.4 模型MBean
20.4.1 MBeanInfo接口与ModelM BeanInfo接口
20.4.2 Model MBean示例
20.5 Commons Modeler库
20.5.1 MBean描述符
20.5.2 mbean元素示例
20.5.3 自己编写一个模型MBean类
20.5.4 Registry类
20.5.5 Managed Bean
20.5.6 BaseModel MBean
20.5.7 使用Modeler库API
20.6 Catalian中的MBean
20.6.1 ClassName MBean类
20.6.2 StandardServer MBean类
20.6.3 MBeanFactory类
20.6.4 MBeanUtil
20.7 创建Catalina的MBean
20.8 应用程序
20.9 小结

文摘
版权页:

深入剖析Tomcat

插图:

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

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多