`
jarfield
  • 浏览: 202644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[How Tomcat Works]第0章 介绍

阅读更多

译者 jarfield

博客 http://jarfield.iteye.com

  1. 概述
  2. 本书为谁准备
  3. Servlet 容器如何工作
  4. Catalina 的框图
  5. Tomcat 45
  6. 每章的概述
  7. 每章的应用程序
  8. 准备必要的软件

概述

    欢迎来到 Tomcat 的内部世界。这本书剖析了Tomcat 4.1.125.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 可能用到的信息,例如请求参数、headerscookiesquery stringURI 等。Request 对象是javax.servlet.ServletRequestjavax.servlet.http.HttpServletRequest 接口的实例。
  • 创 建Response 对象,Servlet 使 用该对象向客户端发送响应数据。Response 对象是javax.servlet.ServletResponsejavax.servlet.http.HttpServletResponse 接口的实例。
  • Request 对象和Response 作 为参数,调用Servletservice 方 法。Servlet 会从Request 对 象中读取请求数据,并将响应数据写入到Response 对象中。


    当你阅读本书的其他章节时,将会找到关于Catalina 的 详细讨论。

Catalina 的框图

    Catalina 是一款设计优雅的、非常成熟的软件。同时,她也是一款模块化的软件。基于“Servlet 容 器如何工作”一节中提到的那3 件任务,你可以认为Catalina 由两个主要模块组成:ConnectorContainer

           Figure 0.1 Catalina 的主要模块
   
    Figure 0.1 是一个非常简化的、高 度概括的框图,后续章节将陆续提到粒度更小的组件。

    现在,我们回到Figure 0.1Connector 将一个请求和Container 连接起来。Connector 的 职责是接收HTTP 请求,并为每个请求创建一个Request 对象和一个Response 对 象。ContainerConnector 那里接收到Request 对象和Response 对象,然后负责调用Servletservice 方法。

    不过请记住,这只是冰上一角。Container 其实干了很多很多事情。举个列子,在调用Servletservice 方 法前,Container 必须加载(loadServlet ,验证用户身 份(如果需要的话),更新用户的会话(Session ),等等。Container 使用了很多模块来处理这些事情。例如,Manager 模块负责处理用户会话,Loader 模块负责加载Servlet 类,等 等。

Tomcat 4 5

    本书覆盖了Tomcat 45 。这里列出了两者的一些不同点:

  • Tomcat 5 支 持Servlet 2.4JSP 2.0 规范,Tocmat 4 支持Servlet 2.3JSP 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 包:SocketServerSocket 。因此,本章包括了这俩类的一些背景知识,足够让你理解本章附带的应用 程序的工作原理。

    第2章 阐述了一个简单的Servlet 容器 是如何工作的。本章带了两个Servlet 容器应用程序,它们分别处理对静态 资源和简单Serlvet 的请求。特别是,你会学习到如何创建RequestResponse 对 象,如何将它们传递给Servletservice 方法。另外,应用程序还包括了一个能够运行在Servlet 容 器中的servlet ,你可以从浏览器中调用它。

    第3章 介绍了Tomcat 4 默 认Connector 的一个简化版。本章构建的应用程序可以作为一个学习工 具,方便理解 第4章讨论的Connector

    第4章 介绍了Tocmat 4 的 默认Connector 。现在,该Connector 已经被一个更快的ConnectorCoyote )取代了。无论如何,这个过时的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章 解释了LoaderLoader 是一个重要的Catalina 模 块,负责加载Servet 类和Web 应用使用的其他 类。本章 还展示了如何重新部署(reload )Web应用。

    第9章 讨论了Manager 。 该组件负责管理用户会话。本章解释了不同类型的Manager ,以及Manager 如何持久化会话对象。在本章的最后,我们将构建一个支持Servlet 使用会话对象来存储数据的应用程序,该应用使用 StandardManager 来实现该功能。

    第10章 介绍了Web 应 用限制特定资源访问的安全约束(Security Constraints )。 你将会学习到安全相关的各种实体(Entity ),包括PrincipalRoleLogin ConfigAuthenticator 等 等。我们还构建了两个应用程序,在 StandardContext 对象中安装一个Authenticator Valve ,使用基本验证方式( Basic Authentication )来验证用户身份。
 
    第11章 详细解释了 org.apache.catalina.core.StandardWrapper 类,该类代表了Web 应 用中的Servlet 。特别是,本章还解释了FilterServlet service 方 法是如何被调用到的。此外,本章附带的应用程序将使用 StandardWrapper 来表示Servlet

    第12章 介绍了 org.apache.catalina.core.StandardContext 类,该类代表了Web 应 用。特别是,本章还讨论了 StandardContext 对象如何被配置的,HTTP 请 求进来时 StandardContext 内部发生了什么, StandardContext 如何支持自动重新部署的,Tomcat 5 如何在各组件之间共享一个执行周期性任务的线程。

    第13章 介绍了其它两种ContainerHostEngine 。 你可以找到这两种Container 的标准实现: org.apache.catalina.core.StandardHost 类和 org.apache.catalina.core.StandardEngine 类。

    第14章 描述了ServerService 两个组件。Server 为 整个Servlet 容器提供了一种优雅的启动和停止机制,Service 则是一个Container 和 数个Connector 的持有者(holder )。本章的应用程序展示了如何使用ServerService

    第15章 解释了基于DigesterWeb 应用配置机制。Digester 是 一个令人振奋的、Apache 基金会的开源项目。本章专门开辟一节介绍了digester 库,并描述了如何使用digesterXML 文档中的节点(Node )转换成Java 对 象。之后,本章描述了负责配置 StandardContext ContextConfig

    第16章 解释了shutdown hook 。使用了该hook 之后,无论用户怎么停止Tomcat (比如,恰当地发送shutdown 命令,或不恰当地直接关闭控制台),Tomcat 总 有机会做一些清理工作。

    第17章 讨论了Tocmat 的 启动和停止过程(使用batch 文件或shell 脚本)。

    第18章 介绍了Deployer , 该组件负责部署(deploy )和安装(installWeb 应用。

    第19章 讨论了一个特殊的接口: ContainerServlet 。该接口赋予了Servlet 访问Catalina 内 部对象的能力。特别是,本章讨论了可以管理已部署应用(deployed applications )的Manager 应用(Manager application )。

    第20章 讨论了JMXTomcat 为内部对象创建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 的路径,然后按下面步骤操 作:

  1. 解压zip 文件。解压后所有文件都在HowTomcatWorks 下。HowTomcatWorks 是工作目录,其下有几个子目录,包括lib (包括所有依赖的jar 文 件)、src (包括源代码文件)、webroot (包 含1HTML 文 件和3Servlet ) 和webapps (包含应用程序范例)。
  2. 切换到工作目录,编译Java 文件。如果你使用的是Windows ,执行win-compile.bat 文 件。如果是linux ,键入命令(不要忘了chmod ):./linux-compile.sh

 
    提示:更多信息,详见zip 文件 中的Readme.txt

    译者提示:作者官方网站上已经下载不到源代码文件,感兴 趣的读者可以从 这里( http://docs.google.com/leaf?id=0B-6ayGT6pnKtYzdlYWQzNDYtOGYxZS00YjJhLTk1MDQtZDZlYjBiYTBiODdm&hl=zh_CN ) 下载。

分享到:
评论
5 楼 yiyidog125 2010-10-20  
感谢代码 找了好一会儿
4 楼 caojian4318 2010-04-02  
这本书我也看过,挺不错,涉及的知识挺多
3 楼 jarfield 2010-03-23  
zhxing 写道
翻译完了??
能否给个完整版给我。。谢谢,我只看完前8章。。
你上面的连接不能看到。不知道为什么


抱歉,还没翻译完。正在翻译中,其实英文版也比较容易读。
2 楼 zhxing 2010-03-22  
翻译完了??
能否给个完整版给我。。谢谢,我只看完前8章。。
你上面的连接不能看到。不知道为什么
1 楼 mercyblitz 2010-03-22  
Servlet 实现没有什么很难的地方,主要是Jasper部分。

相关推荐

    How Tomcat Works 中文版.pdf

    《How Tomcat Works》中文版一书详细剖析了Tomcat服务器的内部工作机制。该书基于Tomcat 4.1.12和5.0.18两个版本,深入讲解了其servlet容器的架构和运作原理,尤其是代号为Catalina的核心组件。 Tomcat是一个开源的...

    How Tomcat Works【英文PDF+中文HTML+源码】.zip

    《How Tomcat Works》是一份深入探讨Apache Tomcat工作原理的重要资源,包含了英文PDF文档、中文HTML翻译以及源代码,旨在帮助读者理解Tomcat服务器的内部运作机制。这份资料是IT从业者,特别是Java Web开发者、系统...

    How Tomcat Works 中文版+例程源码

    《How Tomcat Works》是一本深入探讨Apache Tomcat工作原理的书籍,中文版的提供使得国内开发者能够更方便地理解这一流行的开源Java Servlet容器。这本书不仅涵盖了Tomcat的基础知识,还详细解析了其内部机制,对于...

    How Tomcat Works 英文书及源码

    《How Tomcat Works》这本书是理解Apache Tomcat服务器工作原理的宝贵资源,它全面深入地讲解了这个流行的Java Servlet和JavaServer Pages(JSP)容器的内部机制。书中的20个章节涵盖了从基础概念到高级特性的广泛...

    How Tomcat Works 中文版

    《How Tomcat Works中文版》这本书是一本深入探讨Apache Tomcat服务器工作原理的专著。Apache Tomcat服务器,或简称为Tomcat,是世界上广泛使用的Java Servlet容器和JavaServer Pages(JSP)引擎,负责处理基于Java...

    How Tomcat Works中文

    ### How Tomcat Works中文版深度解析 #### 一、引言与概述 《How Tomcat Works》是一本针对Apache Tomcat服务器内部工作机制进行深入剖析的专业书籍。本书详细介绍了Tomcat 4.1.12和5.0.18两个版本的内部结构与...

    How Tomcat works(PDF)

    《How Tomcat Works》这本书深入浅出地介绍了Apache Tomcat这款广泛应用的Java Servlet容器的工作原理。Tomcat作为开源软件,是许多Web应用的基础,尤其在轻量级开发和测试环境中非常常见。以下是对Tomcat核心知识点...

    HowTomcatWorks(书和源码)

    《How Tomcat Works》是一本深入解析Apache Tomcat工作原理的书籍,同时也包含了源码,为读者提供了理论与实践相结合的深入学习体验。Tomcat是一款广泛使用的开源Java Servlet容器,它是Apache软件基金会 Jakarta...

    WEB服务器工作机制由浅至深(2):【How Tomcat Works】1~4章翻译分析

    本篇文章将深入探讨Tomcat,一个广泛使用的Java Web服务器,通过翻译分析"How Tomcat Works"一书的前四章内容,来理解其工作机制。 首先,我们要了解Tomcat的基本架构。Tomcat是Apache软件基金会的Jakarta项目中的...

    HowTomcatWorks书籍代码

    HowTomcatWorks书籍课程实例工程与代码 书籍剖析了Tomcat 4.1.12和Tomcat 5.0.18--一个免费的、开源的、深受大众欢迎的、代号为Catalina的servlet容器,并讲解其容器的内部运行机制。通过迭代实现一个简化版软件来...

    译How Tomcat Works(第二章)

    《译How Tomcat Works(第二章)》这篇文章主要讲解了Apache Tomcat服务器的工作原理,它是一个开源的Java Servlet容器,广泛用于部署Web应用程序。在这一章中,我们将深入探讨Tomcat如何处理HTTP请求,以及其内部架构...

    how tomcat works中英文版

    《How Tomcat Works》是一本深入探讨Apache Tomcat工作原理的书籍,包含了中英文两个版本。这本书对于理解Java Servlet和JavaServer Pages(JSP)容器的运作方式具有极高的价值,特别是对于那些想要深入理解Web应用...

    HowTomcatWorks 中文版+源码.rar

    《HowTomcatWorks》是一本深入解析Apache Tomcat工作原理的书籍,中文版的发布使得更多的中国开发者能够理解和掌握这款广泛应用的开源Java Servlet容器的工作机制。Tomcat是Apache软件基金会Jakarta项目的一部分,它...

    tomcat工作原理深入详解——HowTomcatWorks中文版.pdf

    tomcat工作原理深入详解——HowTomcatWorks中文版.pdf

    How Tomcat Works 英文版 带书签

    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

    《how tomcat works》是一本深入探讨Apache Tomcat内部工作原理的专业书籍。Apache Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages技术规范,提供了Java Web服务器的功能。对于Java ...

Global site tag (gtag.js) - Google Analytics