基本信息
- 原书名:How Tomcat Works:A Guide to Developing Your Own Java Servlet Container
- 原出版社: Brainy Software

【插图】

编辑推荐
深入剖析Tomcat 4 和Tomcat 5 中的每个组件,并揭示其内部工作原理
适合于所有使用Java技术工作的开发人员阅读
内容简介
计算机书籍
《深入剖析Tomcat》深入剖析Tomcat 4和Tomcat 5中的每个组件,并揭示其内部工作原理。通过学习《深入剖析Tomcat》,你将可以自行开发Tomcat组件,或者扩展已有的组件。 Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。《深入剖析Tomcat》从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。
作译者
Paul Deck是一个有15多年经验的IT架构师,参与了很多项目的开发,这些项目遍布在美国、加拿大、中国和澳大利亚。他喜欢旅行,对网络、互联网编程、设计模式和用户界面交互设计非常感兴趣。
目录
译者序
前 言
第1章 一个简单的Web服务器1
1.1 HTTP1
1.1.1 HTTP请求1
1.1.2 HTTP响应2
1.2 Socket类3
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
译者序
虽然Tomcat易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块密切合作,各司其职,构成了Tomcat的核心结构。作者从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐步深入,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的一个Web服务器。
当然,《深入剖析Tomcat》并不能完全覆盖Tomcat,书中并没有包含Tomcat的太多设计思路及具体的实现细节,而是更注重对Tomcat基本结构的分析介绍。在每一章中都有与本章内容相关的示例应用程序,帮助读者更好地理解该章的内容。
《深入剖析Tomcat》由曹旭东翻译,由于时间仓促,加上译者水平有限,书中难免有疏漏之处,望广大读者予以指正。
曹旭东
前言
“《深入剖析Tomcat》结构”一节会对全书的章节设置做一个总体介绍,并说明构建的应用程序的总体结构。在“准备必需的软件”一节,说明需要下载使用哪些软件,如何为代码创建目录结构等。
《深入剖析Tomcat》读者对象
《深入剖析Tomcat》适合于所有使用Java技术工作的开发人员。
如果你是一名JSP/Servlet程序员或Tomcat用户,并想了解servlet容器是如何工作的,那么《深入剖析Tomcat》很适合你;
如果你想加入Tomcat开发团队,那么《深入剖析Tomcat》很适合你,因为你首先要学习已有的代码是如何工作的;
如果你不是一名Web开发人员,但对软件开发很有兴趣,那么你可以从《深入剖析Tomcat》中学习到一个大型应用软件(如Tomcat)是如何设计和开发的;
如果你想对Tomcat进行配置或定制,你应该阅读《深入剖析Tomcat》。
为了更好地理解《深入剖析Tomcat》所讲述的内容,你需要理解Java中的面向对象编程知识,以及Servlet编程方面的知识。如果你对后者还不熟悉,那么你学习起来可能会有些困难。你可以先学习一下Servlet编程方面的知识,例如看一下Budi的《Java for the Web with Servlets, JSP, and EJB》一书。为了使你更好地理解《深入剖析Tomcat》的内容,每一章的开头都会有一段与该章内容相关的背景信息的介绍。
servlet容器是如何工作的
servlet容器是一个复杂的系统,但是,它有3个基本任务,对每个请求,servlet容器会为其完成以下3个操作:
创建一个request对象,用可能会在调用的Servlet中使用到的信息填充该request对象,如参数、头、cookie、查询字符串、URI等。reqeust对象是javax.servlet.ServletRequest接口或javax.servlet.http.ServletRequest接口的一个实例。
创建一个调用Servlet的response对象,用来向Web客户端发送响应。 response对象是javax.servlet.ServletResponse接口或javax.servlet.http.ServletResponse接口的一个实例;
调用Servlet的service()方法,将request对象和response对象作为参数传入。Servlet从request对象中读取信息,并通过response对象发送响应信息。
当你阅读具体的章节时,你会看到关于servlet容器Catalina的详细描述。
Catalina框图
Catalina是一个成熟的软件,设计和开发得十分优雅,功能结构也是模块化的。上一节“servlet容器是如何工作的”中提到了servlet容器的任务,基于这些任务可以将Catalina划分为两个模块:连接器(connector)和容器(container)。
图I-1很简单,在后续的章节中,你会逐个接触到所有的组件。
图I-1 Catalina的主要模块
现在,回到图I-1,这里的连接器负责将一个请求与容器相关联。它的工作包括为它接收到的每个HTTP请求创建一个request对象和一个response对象。然后,它将处理过程交给容器。容器从连接器中接收到request对象和response对象,并负责调用相应的Servlet的service()方法。