《how tomcat work》
翻译此书只为学习,有错误,不到位之处,请指出。文笔欠佳,请多海涵。
简介
概述
欢迎来到《how tomcat works》,这本书剖析了当下免费的 ,开源的,并且是最为流行的Servlet容器Catalina(tomcat) 4.1.12和5.0.18的内部工作原理。tomcat是一个复杂的系统,由多个不同的组件构成,这些是很多刚开始接触tomcat的,希望了解它是怎么运作的人希望学习的。这本书先是做一个总的概括,然后针对每一个组件,构建一个相比组件本身更加简单的示例,帮助读者简单的理解,最后讲解组件本身。
你应该先从阅读下面的介绍开始阅读本书,它会告诉你这本书的整体结构,并且告诉你应用构建的简要概述,“准备必要软件”章节会告诉你应该下载哪些软件和怎么组织代码目录结构。
这本书适合的读者
这本书是为所有从事java开发的人准备的
- servlet/jsp开发,或者tomcat的使用者。
- 想要加入tomcat开发的人
- 从来没有进行过web开发,但是对软件开发感兴趣,这本书会告诉你像tomcat这种大型应用是如何设计和开发的
- 你想配置或者定制化tomcat,你也可以阅读本书。
想要理解本书的内容,你需要懂得java面向对象编程和servlet编程。如果你还不了解这些内容,就先找相关书籍看一下。为了使内容更加容易理解,每章节会先介绍一些必要的背景知识。
Servlet容器是怎样工作的?
一个servlet容器是一个很复杂的系统,但是,最基本的,servlet对于一个请求会做三件事:
- 创建一个请求对象(request),并用可能被已经启动的servlet使用到的信息初始化它。比如:请求参数、头信息、cookies、查询字符串、URI等。request对象是javax.servlet.ServletRequest接口或者javax.servlet.http.ServletRequest接口的实例。
- 创建一个客户端响应对象(response),它通常被servlet发送给web客户端。response对象是javax.servlet.ServletResponse接口或者javax.servlet.http.ServletResponse接口的实例。
- 调用servlet的服务方法,传递request和response对象,servlet从request中读取信息,并把要返回的信息写入response中。
当你阅读每章节时,会看到对servlet容器详细的讨论。
tomcat的框架图
tomcat是一个设计巧妙,优雅的软件。它是模块化的,基于任务调度的。在“servlet是如何工作的”章节,你会看到它的两个主要的组成部分:连接器、容器。
框架图就如【图1.1】所示,这里是简单的描述一下。在接下来的章节里我会为你一点一点解开它的面纱。
如图,connecter通过请求与container连接。connecter的工作是为收到的每一个http请求构建一个request和response对象。然后connecter将任务移交给container,container从connecter那得到request和reponse对象,并且负责调用所请求servlet相应的处理方法。
需要注意的是,上面描述不过是冰山一角,容器还会做很多事情。比如:在它调用servlet方法之前,它必须加载servlet,检查用户是否合法(如果必要的话),并为当前用户更新session等等。并且它还包含很多处理模块,比如:管理模块(manager module)处理用户会话,加载模块(loader)加载class文件等等。
tomcat 4 和 tomcat 5
这本书覆盖了tomcat4和tomcat5,这里说一下它们的不同。
- tomcat5支持 Servlet2.4 和jsp2.0 标准。tomcat4支持Servlet2.3和jsp1.2标准。
- tomcat5比tomcat4有更多高效的连接器。
- tomcat5的后台处理程序共用一个线程,鉴于tomcat4每个后台处理程序都各自使用一个线程,因此tomcat5在这方面更加节省资源。
- tomcat5不需要专门的组件字典用来查询子组件,所以精简了代码。
对每一章的概述
本书一共有20章,前两章主要作为本书的介绍。
第一章解释了一个http服务器是如何工作的。第二章描述了一个简单的servlet容器的特征。接下来的两章专注讲解连接器。剩下的章节讲解容器的每一个组件。下面是每一章的概要。
注意:每一章都会有一个和组件类似的示例程序会被讲解。
第一章:java的网络包:Socket和ServletSocket
第二章:一个简单的servlet容器是如何工作的。
第三章:介绍一个简化版的tomcat4的connecter。
第四章:介绍tomcat4的默认connecter
第五章:介绍container的模块:engine、host、context、wrapper
第六章:介绍Lifecycle接口。各组件的生命周期。
第七章:日志接口。
第八章:加载模块,loader接口。
第九章:管理用户会话。
第十章:安全机制。
第十一章:org.apache.catalina.core.StandardWrapper接口,在容器中通常代表一个servlet。
第十二章:org.apache.catalina.core.StandardContext接口,在容器中通常代表一个应用程序。
第十三章:剩下的host和engine容器。
第十四章:服务器和服务组件。
第十五章:配置web程序。
第十六章:关闭命令。
第十七章:通过批处理或者脚本来启动或者关闭tomcat。
第十八章:部署和装载组件。
第十九章:一个特殊的接口,ContainerServlet。我们可以通过它获取容器的核心对象。
第二十章:JMX(Java Management Extensions,即Java管理扩展)。
为学习每一个章节准备的程序
每一个章节会有1~2个示例程序。你会看到一个简化版的组件。或者通过code解释这个组件是如何使用的。所有的class文件或者interface文件都在ex[章节号].pyrmont包或者子包里。比如章节一的文件就在ex01.pyrmont中。
开发所需的软件及安装
- 安装 j2SE1.4
- 下载压缩源文件:http://pan.baidu.com/s/1qWtJudm
- 解压源文件,windows用户运行win-compile.bat文件(linux用户执行:./linux-compile.sh),编译java文件。
《How Tomcat Works》深入剖析了开源Servlet容器Tomcat 4.1.12和5.0.18的内部机制。本书适合Java开发人员、Servlet/JSP开发者以及Tomcat使用者。介绍了Servlet容器的基本工作原理,包括请求处理、连接器和容器的角色。同时,书中通过示例程序解释各个组件的运作,涵盖从基础的HTTP服务器到复杂的组件配置。
215

被折叠的 条评论
为什么被折叠?



