《how tomcat works》翻译开篇

《How Tomcat Works》深入剖析了开源Servlet容器Tomcat 4.1.12和5.0.18的内部机制。本书适合Java开发人员、Servlet/JSP开发者以及Tomcat使用者。介绍了Servlet容器的基本工作原理,包括请求处理、连接器和容器的角色。同时,书中通过示例程序解释各个组件的运作,涵盖从基础的HTTP服务器到复杂的组件配置。

《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中。

开发所需的软件及安装

  1. 安装 j2SE1.4
  2. 下载压缩源文件:http://pan.baidu.com/s/1qWtJudm
  3. 解压源文件,windows用户运行win-compile.bat文件(linux用户执行:./linux-compile.sh),编译java文件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值