《深入剖析TOMCAT.pdf》(中文版,带目录)

所需积分/C币:10 2019-03-30 23:54:04 28.35MB PDF
87
收藏 收藏
举报

带目录的《深入剖析TOMCAT》中文版,带目录,便于大家阅读
前言 欢迎阅读本书。本书剖析了 Tomcat41.12版本和 Tomcat50.18版本的基本结构,并解释了 共 servlet容器 Catalina的内部工作原理。 Catalina是开源、免费的,也是最受欢迎的 servlet容器 之一。 Tomcat本身是一个复杂的系统,包含了许多不同的组件。若你想学习 Tomcat的工作方式, 应该从了解这些组件开始。本书描述 Tomcat的总体结构,并针对每个组件建立一个简单的版本, 使你更好地理解组件的工作机制,之后对真实组件进行描述。 “本书结构”一节会对全书的章节设置做一个总体介绍,并说明构建的应用程序的总体结 构。在“准备必需的软件”一节,说明需要下载使用哪些软件,如何为代码创建目录结构等 本书读者对象 本书适合于所有使用Java技术工作的开发人员。 ·如果你是一名 JSP/Servlet程序员或 Tomcat用户,并想了解 servlet容器是如何工作的,那 么本书很适合你 如果你想加入 Tomcat开发团队,那么本书很适合你,因为你首先要学习已有的代码是如 何工作的; ·如果你不是一名Web开发人员,但对软件开发很有兴趣,那么你可以从本书中学习到一个 大型应用软件(如 Tomcat)是如何设计和开发的; 如果你想对 Tomcat进行配置或定制,你应该阅读本书。 为了更好地理解本书所讲述的内容,你需要理解Java中的面向对象编程知识,以及 Servlet 编程方面的知识。如果你对后者还不熟悉,那么你学习起来可能会有些困难。你可以先学习一下 Servlet编程方面的知识,例如看一下Budi的《 Java for the Web with Servlets,JsP, and EJB》一书。 为了使你更好地理解本书的内容,每一章的开头都会有一段与该章内容相关的背景信息的介绍 servlet容器是如何工作的 servlet容器是一个复杂的系统,但是,它有3个基本任务,对每个请求, servlet容器会为其 完成以下3个操作: 创建一个 request对象,用可能会在调用的 Servlet中使用到的信息填充该 request对象,如 参数、头、 cookie、查询宇符串、URI等 或 o reqeust对象是 Javax.servletServletRequest接口 Javax.servlet.httpServletrequest接口的一个实例。 ·创建一个调用 Servlet的 response对象,用来向Web客户端发送响应。 response对象是 javax.servlet.ServletResponse接口或Javax.servlethttp.ServletResponse接口的一个实例; 调用 Servlet的 service0方法,将 request对象和 response对象作为參数传入。 Servlet从 request对象中读取信息,并通过 response对象发送响应信息。 当你阅读具体的章节时,你会看到关于 servlet容器 Catalina的详细描述。 Catalina框图 Catalina是一个成熟的软件,设计和开发得十分优雅,功能结构也是模块化的。上一节 “ serylet容器是如何工作的”中提到了 servlet容器的任务,基于这些任务可以将 Catalina划分为 两个模块:连接器( connector)和容器( container)。 图I-1很简单,在后续的章节中,你会逐个接触到所有的组件 匚连接器 servlet容器 图I- I Catalina的主要模块 现在,回到图Il,这里的连接器负责将一个请求与容器相关联。它的工作包括为它接收到的 每个HTP请求创建一个rque对象和一个 response对象。然后,它将处理过程交给容器。容器 从连接器中接收到 request对象和 response对象,并负责调用相应的 Servlet的 service(0方法。 但是请记住,上面所描述的处理过程只是 Catalina容器处理请求的整个过程的一小部分, 犹如冰山的一角,在容器中还包括很多其他的事情要做。例如,在容器调用相应的 Servlet的 serviceD方法之前,它必须先载入该 Servlet类,对用户进行身份验证(如果有必要的话),为用 户更新会话信息等。因此,当你发现容器使用了很多不同的模块来处理这些事情时,请不要太惊 讶。例如,管理器模块用来处理用户会话信息,载入器模块用来载入所需的 Servlet类等 omat4和 Tomcat5 本书涵盖了 Tomcat4和 Tomcat5两个版本。下面是这两个版本的一些区别之处 Tomcat 5支持 Servlet2.4和JSP2.0规范, Tomcat4支持 Servlet2.3和JsP1.2规范; Tomcat s默认的连接器比 Tomcat4默认的连接器执行效率更高; Tomcat5使用共享线程来执行后台任务,而 Tomcat4的组件使用各自的线程执行后台任 务,因此,相比于 Tomcat4, Tomcat5更节省资源; Tomcat5不再使用映射器组件来査找子组件,因此,代码更简单。 本书结构 本书共20章,前两章概述了全书内容。第1章介绍了HTTP服务器是如何工作的,第2章 介绍了一个简单的 servlet容器。第3章和第4章着重于连接器的说明,第5~20章介绍容器中的 各个组件。下面是每一章的内容简介。 注意每一章都配有一个应用程序用于对该章所介绍组件进行实际应用的说明。 第1章:本书从介绍一个简单的HTTP服务器开始。为了建立一个可以运行的HTP服务 器,你需要了解 Java. net包下 Socket类和 Server Socket类的内部运行机制。该章有详细的背景信 息介绍,使你可以理解该章中应用程序的运行机制。 第2章:阐明一个简单的 servlet容器是如何工作的。该章有两个与 servlet容器有关的应用 程序,可以服务于静态资源的请求和简单 Servlet的请求。此外,你会学习到如何创建 request对 象和 response对象,并将它们传递给被请求的 Servlet的 serviced方法。此外,在该 servlet容器 中有一个可以运行的 Servlet可以从Web浏览器中进行调用。 第3章:将对 Tomcat4中的默认连接器的精简版进行说明。该章中建立的应用程序可以作 为一个学习工具,有助于理解在第4章中讨论的连接器。 第4章:对 Tomcat4的默认连接器进行说明。该连接器已经弃用,而是推荐使用另一个称 为 Coyote的执行速度更快的连接器。但是,原先的默认连接器更简单、更容易理解。 第5章:讨论容器模块。容器由org. apache. catalina. Container接口表示,共有4种类型的容 器,分别是 Engine、Host、 Context和 Wrapper。该章提供了两个分别与 Context和 Wrapper相关 的应用程序。 第6章:对 Lifecycle接口进行说明。该接口定义了 Catalina组件的生命周期,并提供了 种优雅的方法来通知其他组件在该组件中发生了某种事件。此外, Lifecycle接口提供了一种优雅 的机制来启动和关闭 Catalina中所有的组件,只需要启动/关闭一次即可。 第7章:介绍日志记录器组件,该组件用于记录错误消息和其他的相关消息。 第8章:对载入器组件进行介绍,载入器是 Catalina中的重要模块,负责载入 Servlet和 Web应用程序中所需要的其他类。该章还将说明Web应用程序的重载是如何实现的。 第9章:介绍管理器组件。该组件负责在会话管理中管理会话。该章介绍了几种不同类型 的管理器,并说明了管理器组件是如何持久化一个 session对象的。在该章末尾,介绍如何使用 StandardManager实例构建一个使用 session对象保存数据的应用程序 第10章:该章将讨论Web应用程序的安全限制,以限制对某些内容的访问。你会学习到 些与安全相关的实体,如主体、角色、登录配置和身份验证等。该章有两个应用程序,分别在 StandardContext对象中安装了验证器阀,并使用基本验证来对用户进行身份验证。 第11章:对 org. apache. catalina. core Standard Wrapper类进行了详细阐述,该类表示Web应 用程序中的一个 Servlet对象。该章还说明了过滤器和 Servlet的 service(方法是如何调用的。该 章的应用程序使用 StandardWrapper实例来表示实际的 Servlet对象。 第12章:介绍 org. apache. catalina. core. StandardContext类,该类表示一个Web应用程序。 该章还说明了如何对一个Standardcontext对象进行配置(这是在接收到HTTP请求时进行的) 如何支持Web应用程序的自动重载,以及 Tomcat5如何通过一个共享线程来执行其相关联组件 中的周期性任务。 第13章;对另外两种容器(Host和 Engine)进行说明。该章对这两种容器的标准实现org apache. catalina. core. StandardHost和org. apache. catalina. core. StandardEngine进行了说明。 第14章:对服务器组件和服务组件进行介绍。服务器组件提供了一种优雅的机制来启动或 关闭整个 servlet容器,服务组件可作为一个容器和一个或多个连接器的持有者。该章通过应用 VII 程序来说明如何使用服务器组件和服务组件。 第15章:说明如何通过 Digester组件来对Web应用程序进行配置。 Digester是 Apache软 件基金会的一个开源项目。即使你对这个不熟悉也没有关系,该章会简要介绍 Digester库,说 明如何使用该库来将XML文档中的节点转换为JaVa对象。该章然后说明 Tomcat是如何通过 ContextConfig对象来对 Standard Context对象进行配置的。 第16章:对 Tomcat中的关闭钩子进行说明。不论用户如何关闭 Tomcat(即通过发送关闭 命令,或是突然直接关闭控制台),通过使用关闭钩子, Tomcat总是可以执行一些清理工作 第17章:对使用批处理文件和She脚本来启动和关闭 Tomcat进行说明。 第18章:对部署器组件进行说明,该组件负责部署和安装Web应用程序。 第19章:对一个特殊接口( ContainerServlet)进行说明。使用该接口, Servlet对象可以访问 Catalina中的内部对象。此外,该章会对用来管理已部署应用程序的 Manager应用程序进行说明。 第20章:对JMX进行说明,并阐述 Tomcat是如何为其内部对象创建 MBean,并使这些内 部对象可托管的。 每一章的应用程序 每一章都会有一个或多个应用程序用来解释 Catalina中的某个特定组件的使用方法。一般情 况下,在该应用程序中你会找到该组件的精简版,或是为说明如何使用 Catalina组件而编写的代 码。在每一章的应用程序中编写的所有的类和接口都在ex/章号/, pyrmont包下。例如,第1章 的应用程序类会在exO, pyrmont包下。 准备必需的软件 本书的应用程序会运行在J2SE的14版本下。源文件的压缩包可以从作者的网站www brainysoftware.com上下载。该压缩包包含了Tomcat41.12的源代码,以及本书中的应用程序的 代码。假设你已经安装了J2SE的14版本,而且环境变量path也已经包含了JDK的路径,那么 只需执行下面的步骤。 1)解压缩z文件。解压缩后会有一个名为 How Tomcat works的新文件夹。 How Tomcat works 是工作目录,其下有一些子目录,包括lb(包含所有必需的库文件)、src(包含所有源文件) webroot(包含一个HTML文件和三个 Servlet示例文件)和 webapps(包含示例应用程序) 2)进入到工作目录中,编译Java文件。若你使用 Windows操作系统,则运行win- compile. bat批处理文件。若你使用 Linux操作系统,则执行下面的命令(必要时,不要忘记用 chmod命 令修改文件的执行权限) ./1inux-c。mpi1e.sh 注意更多的信息可以在压缩包的 Readme.xt文件中找到。 目录 译者序 321启动应用程序………………35 前言 322 Http Connector类……36 323创建 Httprequest对象……38 第1章一个简单的Web服务器 e arar 324创建 Httpresponse对象……49 1. 1 httP…………………………… 325静态资源处理器和 servlet处理器…50 1.1.1HTTP请求… 326运行应用程序 ………50 1.1.2HTTP响应…… ……23.3小结 ………52 1.2 Socket类… t日 cnnnn香音 teere十t+t 3第4章 Tomcat的默认连接器…………53 1.3应用程序 54.1HTTP1.I的新特性… 54 1.3. Httpserver类 中·+…“-44“+ 4.1.1持久连接…… ………54 1.3.2 Request类 8 4.1.2块编码……………………54 1.3.3 Response类…0 4.1.3状态码100的使用…………55 1.34运行应用程序……………l24.2 Connector接口 …55 14小结… ……………………l343 Http connectoR类…………………56 第2章一个简单的 servlet容器……l 4.3.1创建服务器套接字 ………·56 2.1 javax. servlet Servlet接口 ……l4 4.3.2维护 Httpprocessor实例…56 22应用程序1……………………l0 4.3.3提供HTTP请求服务… 57 221 Http SErverl类………I744 Http processor类 58 22.2 Request类… 1945 Request对象… 61 223 Response类………46 Response对象………………“62 224 Static Resource Processor类……2347处理请求 62 22.5 servletProcessor 1类… 24 4.7.1解析连接… 65 22.6运行应用程序……………………27 4.7.2解析请求…………65 23应用程序2… …………27 4.7.3解析请求头 …………65 24小结 304.8简单的 Container应用程序…66 第3章连接器… 3149小结……………………………70 3.1 String Manager类… 31第5章 servlet容器 32应用程序……………………………335.1 Container接口… 7 IX 52管道任务… …7364 Lifecycle Support类…………95 52.1 Pipeline接口…7665应用程序 ·中中·"·::中中·:中“·有 97 52.2 Valve接口… 76 6.5.1 ex06 pyrmont. core. 523 Valve Context接口………76 Simple Context类…………………97 524 Contained接口… 77 6.5.2 ex06 pyrmont. core. 5.3 Wrapper接口…… …77 SimpleContextlifecyclelistener类…100 54 Context接口………………78 6. 5. 3 ex06 pyrmont. core. 55 Wrapper应用程序 ………78 Simpleloader类…………………10l 5.1ex05 pyrmont.. core. SimpleLoader类…78 6.5.4 ex06 pyrmont.core 552cx05 pyrmont. core. SimplePipeline类……79 ple Pipeline类……l0 5.53ex05 pyrmont. core. Simple Wrapper类…79 6.5.5 exO6 pyrmont core. 5.5.4 ex05pyrmontcore Simple Wrapper类…………I0l Simple Wrapper Valve类………80 6.56运行应用程序…………………/03 5.5.5 ex05 pyrmont valves 6.6小结 ……104 ClientIPLogger Valve类……8l第7章日志记录器…………………05 5.5.6 ex05 pyrmont valves 7.1 Logger接口… ……………I05 HeaderLogger Valve类………8l72 Tomcat的日志记录器…06 5.5.7 exO5 pyrmont. startup. Bootstrap1-82 72.1 LoggerBase类…………l06 558运行应用程序… 。曹看申中排着鲁由中着甲 84 7.22 SystemOutLogger类………………07 56 Context应用程序…………………84 723 SystemErrLogger类……l07 5.6.1 exo5pyrmont.core 724 FileLogger类………08 Simple Context Valve类…………877.3应用程序………………l 5.6.2 ex05pyrmontcore 74小结… ……ll2 Simple ContextMapper类…………87第8章载入器…3 5.6.3 exO5 pyrmont. core. 8.1Java的类载人器 …lI3 Simple Context类…………898.2 Loader接口……4 564ex05 pyrmont. startup. Bootstrap2…898.3 Reloader接口………………Il6 56.5运行应用程序… 91·84 Webapploader类 6 57小结………………………92 8.4.1创建类载入器………7 第6章生命周期 93 842设置仓库 Ⅰ18 6.1 Lifecycle接口 …93 84.3设置类路径…………I8 62 LifecycleEvent类 94 844设置访问权限 I18 63 LifecycleListener接口… 94 84.5开启新线程执行类的重新载入…118 X 8.5 WebappClassLoader类………………/20106应用程序… …………!47 851类缓存 120 10.6.1 ex10 pyrmontcore 852载入类……………………l2 Simple ContextConfig类…l47 853应用程序………………………l21 10.6.2 ex10 pyrmont realm. 86运行应用程序……………………124 Simplerealm类……………l49 87小结 ………………………l24 10.6.3 ex10 pyrmont realm 第9章 Session管理…………………l25 SimpleUserDatabaseRealm………52 91 Session对象……………………………26 10. 6. 4 ex10 pyrmont startup 9.1.1 Session接口… …l26 Bootstrap 1类……………………l54 912 StandardSession类………l27 10.6.5 ex10 pyrmont startup 91.3 StandardSession Facade类…………l29 Bootstrap2类………………156 92 Manager……………………l30 10.66运行应用程序……………………158 921 Manager接口……………13010.7小结…… …………58 922 Manager Base类 13l第11章 Standard Wrapper…………r59 923 StandardManager类… 13211.1方法调用序列……………………l59 924 PersistentManagerBase类……l331 1.2 SinglethreadMode……l60 925 PersistentManager类……351.3 Standardwral 哥中垂鲁中重,t 6 9.2.6 DistributedManager 3e …l35 11.3.1分配 servlet实例 62 9.3存储器 l36 11.3.2载入 servlet类…………………………64 93.1 Store Base类 …37 11.33 ServletConfig对象……67 93.2 Filestore类………………l38 11.34 servlet容器的父子关系… l69 933 JDBCStore类………3914 Standard WrapperFacade类…………170 94应用程序………………………l3911.5 Standard Wrapper Valve类………17 94.1 Bootstrap类…… 13911.6 FilterDef类… 康中 l72 94.2 Simple wrapper valve类……401.7 Application FilterConfig类…………174 943运行应用程序………………I411.8 Application Filter Chain类…………175 95小结 …14211.9应用程序… ……………………l75 第10章安全性…………………43·11.10小结 “:···甲.!+“ 177 10.1领域 ,·中:吾者“书·d“由“甲中审审 143第12章 StandardContext类………l78 102 GenericPrincipa类 tttt音 ……I144 12. Standardcontext的配置… 103 Login Config类………………………l45 12.1.1 StandardContext类的构造函数…l79 10.4 Authenticator接口… 重,中和和世曹 145 121.2启动 StandardContext实例……l79 10.5安装验证器阀 …l46 121,3 invoke方法 …………………183 XI 12.2 StandardContextMapper类……l84第15章 Digester库……20 123对重载的支持………8715.1 Digester库 ……22 124 background Process(0方法……8 15.1.1 Digester类……………22 125小结 审pg音+留 190 1512 Digester库示例1………225 第13章Host和 Engine……l9 151.3 Digester库示例2 227 13 I Host接口… ……191 1514Rule类……………230 132 StandardHost类…………………193 15.1.5 Digester库示例3: 133 StandardHostMapper类……195 使用 RuleSet……………232 134 StandardHost valⅤe类…… 196152 ContextConfig类 …………234 13.5为什么必须要有一个 1521 default config(方法……………236 Host容器…97 1522 application Config方法……238 13.应用程序1………………………198 1523创建 Web Digester …:239 137 Engine接口 199153应用程序…………………243 13.8 StandardEngine类………………201154小结… ……244 13.9 StandardEngine valve 3 201第16章关闭钩子… …245 13.10应用程序2 …202 161关闭钩子的例子……246 13.11小结 203162 Tomcat中的关闭钩子…250 第14章服务器组件和服务组件 204 163小结…………………………250 14.1服务器组件… 上是+.· 204第17章启动 Tomcat………………251 14.2 StandardServer类…206 171 Catalina类……………21 14.2.1 initialize(方法…………200 17.1.1 start方法…253 1422 start(方法…………………207 17.1.2 stop方法… 256 1.23stop方法………207 17.13启动 Digester对象……256 1424 awant0方法……………………208 17.14关闭 Digester对象………………258 14.3 Service接口………………………………209 172 Bootstrap类… 259 14.4 StandardService类… …2ⅠI 73在 Windows平台上运行 Tomcat…264 144 1 connector和 container……………2r 17.3.1如何编写批处理文件 264 1442与生命周期有关的方法 213 17.3.2 catalina, bat批处理文件…………267 14.5应用程序… ……"·.···*“““!「 …21517.33在 Windows平台上启动 Tomcat…276 14.51 Bootstrap类……………………25 1734在 Windows平台上关闭 Tomcat…277 14.52 Stopper类 ·217 74在 Linux平台上运行 Tomcat……278 14.53运行应用程序……8 1741如何编写 UNIX /Linux shel本…278 14.6小结………………219 1742 catalina.sh脚本……283

...展开详情
试读 127P 《深入剖析TOMCAT.pdf》(中文版,带目录)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚积分or赚钱
    最新推荐
    《深入剖析TOMCAT.pdf》(中文版,带目录) 10积分/C币 立即下载
    1/127
    《深入剖析TOMCAT.pdf》(中文版,带目录)第1页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第2页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第3页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第4页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第5页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第6页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第7页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第8页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第9页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第10页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第11页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第12页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第13页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第14页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第15页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第16页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第17页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第18页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第19页
    《深入剖析TOMCAT.pdf》(中文版,带目录)第20页

    试读结束, 可继续阅读

    10积分/C币 立即下载 >