译者 jarfield
-
概述
-
本书为谁准备
-
Servlet
容器如何工作
-
Catalina
的框图
-
Tomcat 4
和5
-
每章的概述
-
每章的应用程序
-
准备必要的软件
概述
欢迎来到
Tomcat
的内部世界。这本书剖析了Tomcat
4.1.12
和5.0.18
,
并讲解了Tomcat
Servlet
容器(代号为Catalina
)的工作内幕。Catalina
是免费的、开源的,也是最流行的Servlet
容器。Tomcat
是一
个复杂的系统,它包括了众多的组件。在了解Tomcat
如何工作之前,我们应
该知道从哪儿入手。这本书首先绘制了一张大蓝图,然后构建了Tomcat
各个
组件的简化版本,使得读者更容易理解Tomcat
组件。在这之后,我才会讲解Tomcat
组件的真实版。
你应该首
先阅读这一章,因为本章描述了本书的结构,并简单介绍了本书将构建的应用程序。“准备必要的软件”这一节给出了需要下载的软件、应用程序代码的目录结构,
等等。
本书为谁准备
从事Java
技术的任何人都可以阅读本书。
- 如果你是Servlet/JSP
程序员或Tomcat
用户,而且对Servlet
容
器工作内幕很感兴趣,那么本书为你而准备。
- 如果你想加入Tomcat
开
发团队,那么本书为你而准备。因为你首秀安需要学习已有的Tomcat
代码是
如何工作的。
- 如果你从没参加过Web
应用的开发,但是对软
件开发很有兴趣,那么你可以从本书学习到“如何设计和开发像Tomcat
这样
的大型应用”。
- 如果你需要配置和定制Tomcat
,你应该
读读本书。
为了更好地理解本书的内容,你需要理解Java面向对象程序设计和Servlet编
程。如果你不熟悉后者,也没关系,有很多书可以参考,比如
Budi Kurniawan
的《Java for the Web
with Servlets, JSP, and
EJB》。为了便于理解,每一章的开始都介绍了必要的背景知识。
Servlet
容器如何工作
Servlet
容
器是一个复杂的系统。但是从最基本的功能(处理一个到Servlet
的请求)
来看,Servlet
容器主要完成3件任务:
- 创建Request
对
象,并填入Servlet
可能用到的信息,例如请求参数、headers
、cookies
、query string
、URI
等。Request
对象是javax.servlet.ServletRequest
或javax.servlet.http.HttpServletRequest
接口的实例。
- 创
建Response
对象,Servlet
使
用该对象向客户端发送响应数据。Response
对象是javax.servlet.ServletResponse
或javax.servlet.http.HttpServletResponse
接口的实例。
- 将Request
对象和Response
作
为参数,调用Servlet
的service
方
法。Servlet
会从Request
对
象中读取请求数据,并将响应数据写入到Response
对象中。
当你阅读本书的其他章节时,将会找到关于Catalina
的
详细讨论。
Catalina
的框图
Catalina
是一款设计优雅的、非常成熟的软件。同时,她也是一款模块化的软件。基于“Servlet
容
器如何工作”一节中提到的那3
件任务,你可以认为Catalina
由两个主要模块组成:Connector
和Container
。
Figure
0.1
Catalina
的主要模块
Figure 0.1
是一个非常简化的、高
度概括的框图,后续章节将陆续提到粒度更小的组件。
现在,我们回到Figure
0.1
,Connector
将一个请求和Container
连接起来。Connector
的
职责是接收HTTP
请求,并为每个请求创建一个Request
对象和一个Response
对
象。Container
从Connector
那里接收到Request
对象和Response
对象,然后负责调用Servlet
的service
方法。
不过请记住,这只是冰上一角。Container
其实干了很多很多事情。举个列子,在调用Servlet
的service
方
法前,Container
必须加载(load
)Servlet
,验证用户身
份(如果需要的话),更新用户的会话(Session
),等等。Container
使用了很多模块来处理这些事情。例如,Manager
模块负责处理用户会话,Loader
模块负责加载Servlet
类,等
等。
Tomcat 4和
5
本书覆盖了Tomcat
4
和5
。这里列出了两者的一些不同点:
-
Tomcat 5
支
持Servlet 2.4
和JSP 2.0
规范,Tocmat 4
支持Servlet 2.3
和JSP
1.2
规范。
-
Tomcat 5
使用了一个
更加高效的默认Connector
。
-
Tomcat 5
的所有组件共享一个后台处理线程,而Tomcat 4
的组件都拥有自己的后台处理线程。因此,Tomcat 5
节省了资源消耗。
-
Tomcat
5
查找子组件时不再使用Mapper
组件,因此代码更加简
化。
每章的概述
本书共有20
章。
头两章是介绍。第1
章描述了HTTP服务器是如何工作的,第2
章主要阐述了一个简单的Servlet
容
器。接下来两章的焦点是Connection
。从第5章到第20章,每章分别
讲解了Catalina
的一个组件。下面是每章的摘要。
提示:每一章都附带了一个与被讲解组件相关的应用程序。
第1章
作为本书的开篇,介绍了一个简单的HTTP
服
务器。为了构建一个可以工作的HTTP
服务器,你必须了解java.net
包:Socket
和ServerSocket
。因此,本章包括了这俩类的一些背景知识,足够让你理解本章附带的应用
程序的工作原理。
第2章
阐述了一个简单的Servlet
容器
是如何工作的。本章带了两个Servlet
容器应用程序,它们分别处理对静态
资源和简单Serlvet
的请求。特别是,你会学习到如何创建Request
和Response
对
象,如何将它们传递给Servlet
的service
方法。另外,应用程序还包括了一个能够运行在Servlet
容
器中的servlet
,你可以从浏览器中调用它。
第3章
介绍了Tomcat 4
默
认Connector
的一个简化版。本章构建的应用程序可以作为一个学习工
具,方便理解
第4章讨论的Connector
。
第4章
介绍了Tocmat 4
的
默认Connector
。现在,该Connector
已经被一个更快的Connector
(Coyote
)取代了。无论如何,这个过时的Connector
简单易学。
第5章
讨论了Container
模
块。在Catalina
中,Container
由
org.apache.catalina.Container
接口表示,并且有4种类型的Container
:
Engine
、
Host
、
Context
和
Wrapper
。本章提供了两个应用程序,涉及到
Context
和
Warpper
。
第6章
解释了生命周期(Lifecycle
)
接口。该接口定义了Catalina
组件的生命周期,并提供了一种优雅的方
式,将生命周期事件(Event
)通知给其他组件。此外,生命周期接口还提供
了一种优雅的机制,只需调用一次
start
/
stop
方法,就可以启动或停止Catalina
的
所有组件。
第7章
介绍了Logger
模
块,其他组件都使用它来打印错误日志和其他日志。
第8章
解释了Loader
。Loader
是一个重要的Catalina
模
块,负责加载Servet
类和Web
应用使用的其他
类。本章
还展示了如何重新部署(reload
)Web应用。
第9章
讨论了Manager
。
该组件负责管理用户会话。本章解释了不同类型的Manager
,以及Manager
如何持久化会话对象。在本章的最后,我们将构建一个支持Servlet
使用会话对象来存储数据的应用程序,该应用使用
StandardManager
来实现该功能。
第10章
介绍了Web
应
用限制特定资源访问的安全约束(Security Constraints
)。
你将会学习到安全相关的各种实体(Entity
),包括Principal
、Role
、Login Config
、Authenticator
等
等。我们还构建了两个应用程序,在
StandardContext
对象中安装一个Authenticator
Valve
,使用基本验证方式( Basic
Authentication
)来验证用户身份。
第11章
详细解释了
org.apache.catalina.core.StandardWrapper
类,该类代表了Web
应
用中的Servlet
。特别是,本章还解释了Filter
和Servlet
的
service
方
法是如何被调用到的。此外,本章附带的应用程序将使用
StandardWrapper
来表示Servlet
。
第12章
介绍了
org.apache.catalina.core.StandardContext
类,该类代表了Web
应
用。特别是,本章还讨论了
StandardContext
对象如何被配置的,HTTP
请
求进来时
StandardContext
内部发生了什么,
StandardContext
如何支持自动重新部署的,Tomcat
5
如何在各组件之间共享一个执行周期性任务的线程。
第13章
介绍了其它两种Container
:Host
和Engine
。
你可以找到这两种Container
的标准实现:
org.apache.catalina.core.StandardHost
类和
org.apache.catalina.core.StandardEngine
类。
第14章
描述了Server
和Service
两个组件。Server
为
整个Servlet
容器提供了一种优雅的启动和停止机制,Service
则是一个Container
和
数个Connector
的持有者(holder
)。本章的应用程序展示了如何使用Server
和Service
。
第15章
解释了基于Digester
的Web
应用配置机制。Digester
是
一个令人振奋的、Apache
基金会的开源项目。本章专门开辟一节介绍了digester
库,并描述了如何使用digester
将XML
文档中的节点(Node
)转换成Java
对
象。之后,本章描述了负责配置
StandardContext
的
ContextConfig
。
第16章
解释了shutdown
hook
。使用了该hook
之后,无论用户怎么停止Tomcat
(比如,恰当地发送shutdown
命令,或不恰当地直接关闭控制台),Tomcat
总
有机会做一些清理工作。
第17章
讨论了Tocmat
的
启动和停止过程(使用batch
文件或shell
脚本)。
第18章
介绍了Deployer
,
该组件负责部署(deploy
)和安装(install
)Web
应用。
第19章
讨论了一个特殊的接口:
ContainerServlet
。该接口赋予了Servlet
访问Catalina
内
部对象的能力。特别是,本章讨论了可以管理已部署应用(deployed
applications
)的Manager
应用(Manager application
)。
第20章
讨论了JMX
。Tomcat
为内部对象创建MBean
,
使得它们可管理(manageable
),本章将解释Tocmat
是怎么做的。
每章
的应用程序
每章都附带了一个或多个应用程序,每个应用程序都关注一个特定的Catalina
组
件。通常,应用程序会提供所关注组件的简化版本,并通过代码演示如何使用该组件。应用程序的所有类和接口都在ex[章节编号].pyrmont
包及其子包中。例如,
第1
章的应用程序类就在ex01.pyrmont
包中。
准备必要的软件
本书附带的应用程序要求J2SE 1.4
。
源代码文件(zip
)可以从作者的网站
www.brainysoftware.com
下载。该zip
文
件包含了Tomcat 4.1.12
和本书应用程序的源代码。本书假设你已经
安装了J2SE 1.4
,环境变量path
中包含了JDK
的路径,然后按下面步骤操
作:
- 解压zip
文件。解压后所有文件都在HowTomcatWorks
下。HowTomcatWorks
是工作目录,其下有几个子目录,包括lib
(包括所有依赖的jar
文
件)、src
(包括源代码文件)、webroot
(包
含1
个HTML
文
件和3
个Servlet
)
和webapps
(包含应用程序范例)。
- 切换到工作目录,编译Java
文件。如果你使用的是Windows
,执行win-compile.bat
文
件。如果是linux
,键入命令(不要忘了chmod
):./linux-compile.sh
提示:更多信息,详见zip
文件
中的Readme.txt
。
译者提示:作者官方网站上已经下载不到源代码文件,感兴
趣的读者可以从
这里(
http://docs.google.com/leaf?id=0B-6ayGT6pnKtYzdlYWQzNDYtOGYxZS00YjJhLTk1MDQtZDZlYjBiYTBiODdm&hl=zh_CN
)
下载。
分享到:
相关推荐
How Tomcat Works中文版
How Tomcat Works【英文PDF+中文HTML+源码】 How Tomcat Works 主要是讲解Tomcat如何运行的一些核心资料。
How Tomcat Works 中文版+例程源码; 源码在src目录下
HowTomcatWorks(书和源码)
How Tomcat Works 全书共20章!
How Tomcat works(PDF),不可用于商业用途,如有版权问题,请联系删除!
HowTomcatWorks 中文版+源码.rar HowTomcatWorks 中文版+源码.rar
tomcat的基本思想,学习完可以对理解spring的基本原理有大致了解,很值得学习
how tomcat works中文版 + 英文版,深入解析了tomcat的实现机制
how tomcat works 高清版 学习tomcat必备书籍 how tomcat works
How Tomcat Works》这本书的读书笔记,及主要内容感想。 作为一个世界范围广泛使用的强大框架,Tomcat必然有非常多的设计思想、设计模式,让我们学习。
How Tomcat Works Tomcat原理的书
How Tomcat Works 深入剖析Tomcat (英文版)
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
How Tomcat Works,讲述Tomcat工作原理的英文教程。
how tomcat works( 深入剖析tomcat) 的随书源码 之前找了很久,后来从官网下载下来的
How Tomcat Works 中文版+例程源码,源码在src包下面, 祝大家学习愉快
Welcome to How Tomcat Works. This book dissects Tomcat 4.1.12 and 5.0.18 and explains the internal workings of its free, open source, and most popular servlet container code-named Catalina. Tomcat is ...