最近抽时间想说来把How Tomcat Works翻译看看,能翻多少算多少吧,以下是书的内容:
Introduction
综述:
欢迎来到How Tomcat Works,该书剖析Tomcat并解释了它其中名为Catalina的Servlet容器的工作原理,它免费,开源并且最为流行。Tomcat是一个复杂系统,由许多不同组件组成。那些想要学习Tomcat的人往往知道从哪开始。这本书先是整体,然后详细解释各部分,这样才会印象深刻。
你应该阅读这个综述应该它解释了书的结构,并且给你简短介绍了所需的软件。Preparing the Prerequisite Software部分会建议你下载哪些软件,如何组织你的代码结构,ETC.
这本书写给:
这本书写给所有的JAVA工作者。
为了更好的阅读此书,你需要理解面向对象编程,servlet编程。如果你对servlet不熟悉,推荐看一本书:Budi’s JAVA for the web with servlets, jsp and ejb。为了更好的理解主题,每章都会有背景信息。
Servlet容器如何工作:
Servlet容器是个复杂系统,主要是为了servlet能响应请求,主要由三部分组成:
[if !supportLists]1. [endif]创建一个request对象,并绑定会被servlet用到的信息,比如参数,请求头,cookies,查询字符串,URI等等。这个request对象实现了javax.servlet.ServletRequest或者javax.servlet.http.ServletRequest接口。
[if !supportLists]2. [endif]创建一个response对象,servlet会用它来向web客户端发送响应。这个response对象实现了javax.servlet.ServletResponse或者java.servlet.http.ServletResponse对象。
[if !supportLists]3. [endif]调用servlet的服务方法,传递request和response,在这里servlet可以阅读request的值,还可以把值写入response对象。
接下来会有对Catalina Servlet容器的详细阐述。
Catalina块状图
Catalina是一个精致的软件,它的设计和构成很高级,并且模块化。“How a Servlet Container works”章节将会介绍其基本任务,你会发现它其实由两大部分组成:Connector和Container.
特征1:Catalina的主体部分
Connector是连接某个请求和container的,它的任务是为了它接收的每个http请求构建一个请求对象以及,一个response对象。然后它会交给container进行加工。Container接收后会调用servlet的方法。
请记住,这个介绍只能说是冰山一角。Container做了许多许多的事情,比如:在它调用servlet的方法之前,它必须要先加载servlet,识别用户权限,刷新用户session,所以它会用到许多不同的模块去处理也不足为奇了。比如说:管理员模块是用来管理用户session,装载模块是用来装载servlet的。
Tomcat4和Tomcat5
这段不想翻,没啥意思
各章综述
这本书共有20章。开始前两章是介绍。第一章解释了一个HTTP服务器是怎么工作的,第二章讲一个简单的容器。第三、四章讲connector,五~二十章讲容器的每个组件,以下是各章的概述。
值得注意的是,每一章都会用一个示例应用去介绍相应的组件。
第一章:
作为书的开头,讲一个简单的HTTP服务器,去做一个能够正常工作的HTTP服务器,你需要了解其内部两个java类:Socket和ServerSocket。这是一个有用的提示,为了你能更好的理解服务器是如何工作的。
第二章:
解释一个简单的servlet容器是如何工作的。这一章也会讲两个简单例子,一个能够访问静态资源,一个能够响应简单的servlet,特别是你会学到如何创建request和response对象并把它们传给相应的servlet方法。当然,你可以从浏览器来调用servlet容器中的某一个servlet。
第三章:
讲一个Tomcat4默认connector的简化版本,这一章会做一个应用,相当于是给第四章做铺垫了。
第四章:
讲Tomcat4的默认connector,这个connector后面因为速度问题被一个叫Coyote的connector取代了。恩。。。所以这个connector更简单,更好理解,更易于入门。
第五章:
讨论container模块,这个模块实现了org.apache.catalina.Container接口,container有四种类型:engine,host,context,wrapper。这章用context和wrapper做了两个应用。
第六章:
解释Lifecycle接口,这个接口定义了catalina组件的生命周期,还提供了一种发送通知给其他组件的高级方式。另外,这个接口有一个全局的开始、停止机制,可以同时开始、停止所有组件。
第七章:
讲loggers,是一个记录错误和其他信息的模块。
第八章:
讲loaders,是catalina的重要部分,负责加载servlet和web应用会用到的其他类。同时,这章也讲了如何去重新加载servlet。
第九章:
讲manager,管理会话的组件。许多不同类型的manager,以及如何持久化存储会话对象。在这章结尾,会教你做一个简单应用,用标准版manager,跑一个servlet,并且用会话对象去存值。
第十章:
讲web应用安全,主要是限制访问某个部分的内容,你会学到:principles,roles,login config,authenticators等等。你会写两个应用,有权限过滤,用到StandardContext,有基本的用户权限功能。
第十一章:
详细解释StandardWrapper,在web应用中它用来一个servlet。这章会特别提到怎么过滤,servlet的方法怎么被调用。这章的应用会用StandardWrapper做。
第十二章:
详细解释StandardContext,它代表一个web应用。讨论一个StandardContext如何配置,当每个HTTP请求时它内部是如何工作的,它是如何支持自动重载的,以及如何与关联组件如何分享定时任务线程。
第十三章:
讲StandardEngine和StandardHost。
第十四章:
Server和service组件,server负责启动和停止整个servlet容器,service负责掌控住一个容器和多个connector。这章的应用会告诉我们怎么用server和service.
第十五章:
通过digester解析一个web应用的配置,digester是apache基金会的一个牛逼项目。它可以通过digester库把XML里面的节点解析成java对象。然后会介绍StandardContext的配置对象ContextConfig.
第十六章:
Tomcat的结束回调配件,通常在这个时候我们会对Tomcat做一次大扫除。
第十七章:
介绍用批处理文件或者终端命令来控制Tomcat的启停。
第十八章:
介绍deployer,用来部署和安装web应用的组件。
第十九章:
介绍一个特殊接口:ContainerServlet,它提供了一种访问catalina内部对象的方式。尤其是,还要介绍Manager应用,用来管理部署好的web应用。
第二十章:
介绍JMX,以及Tomcat如何通过MBeans来管理其内部的对象。
每一章的app
每一章都会有一到两个app,来介绍catalina的某一个组件。通常,你会看到一个简化版本,或者是如何去用catalina组件的一段代码。所有类和接口都不会超过上一章的范围。
好了,请把要用的软件安装好。
网友评论