译者 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》中文版一书详细剖析了Tomcat服务器的内部工作机制。该书基于Tomcat 4.1.12和5.0.18两个版本,深入讲解了其servlet容器的架构和运作原理,尤其是代号为Catalina的核心组件。 Tomcat是一个开源的...
《How Tomcat Works》是一份深入探讨Apache Tomcat工作原理的重要资源,包含了英文PDF文档、中文HTML翻译以及源代码,旨在帮助读者理解Tomcat服务器的内部运作机制。这份资料是IT从业者,特别是Java Web开发者、系统...
《How Tomcat Works》是一本深入探讨Apache Tomcat工作原理的书籍,中文版的提供使得国内开发者能够更方便地理解这一流行的开源Java Servlet容器。这本书不仅涵盖了Tomcat的基础知识,还详细解析了其内部机制,对于...
《How Tomcat Works》这本书是理解Apache Tomcat服务器工作原理的宝贵资源,它全面深入地讲解了这个流行的Java Servlet和JavaServer Pages(JSP)容器的内部机制。书中的20个章节涵盖了从基础概念到高级特性的广泛...
《How Tomcat Works中文版》这本书是一本深入探讨Apache Tomcat服务器工作原理的专著。Apache Tomcat服务器,或简称为Tomcat,是世界上广泛使用的Java Servlet容器和JavaServer Pages(JSP)引擎,负责处理基于Java...
### How Tomcat Works中文版深度解析 #### 一、引言与概述 《How Tomcat Works》是一本针对Apache Tomcat服务器内部工作机制进行深入剖析的专业书籍。本书详细介绍了Tomcat 4.1.12和5.0.18两个版本的内部结构与...
《How Tomcat Works》这本书深入浅出地介绍了Apache Tomcat这款广泛应用的Java Servlet容器的工作原理。Tomcat作为开源软件,是许多Web应用的基础,尤其在轻量级开发和测试环境中非常常见。以下是对Tomcat核心知识点...
《How Tomcat Works》是一本深入解析Apache Tomcat工作原理的书籍,同时也包含了源码,为读者提供了理论与实践相结合的深入学习体验。Tomcat是一款广泛使用的开源Java Servlet容器,它是Apache软件基金会 Jakarta...
本篇文章将深入探讨Tomcat,一个广泛使用的Java Web服务器,通过翻译分析"How Tomcat Works"一书的前四章内容,来理解其工作机制。 首先,我们要了解Tomcat的基本架构。Tomcat是Apache软件基金会的Jakarta项目中的...
HowTomcatWorks书籍课程实例工程与代码 书籍剖析了Tomcat 4.1.12和Tomcat 5.0.18--一个免费的、开源的、深受大众欢迎的、代号为Catalina的servlet容器,并讲解其容器的内部运行机制。通过迭代实现一个简化版软件来...
《译How Tomcat Works(第二章)》这篇文章主要讲解了Apache Tomcat服务器的工作原理,它是一个开源的Java Servlet容器,广泛用于部署Web应用程序。在这一章中,我们将深入探讨Tomcat如何处理HTTP请求,以及其内部架构...
《How Tomcat Works》是一本深入探讨Apache Tomcat工作原理的书籍,包含了中英文两个版本。这本书对于理解Java Servlet和JavaServer Pages(JSP)容器的运作方式具有极高的价值,特别是对于那些想要深入理解Web应用...
《HowTomcatWorks》是一本深入解析Apache Tomcat工作原理的书籍,中文版的发布使得更多的中国开发者能够理解和掌握这款广泛应用的开源Java Servlet容器的工作机制。Tomcat是Apache软件基金会Jakarta项目的一部分,它...
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
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 ...
《how tomcat works》是一本深入探讨Apache Tomcat内部工作原理的专业书籍。Apache Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages技术规范,提供了Java Web服务器的功能。对于Java ...