精通Tomcat

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

精通Tomcat
——Java Web 应用开发,框架分析与组建配置,系统集成与案例实战
Tomcat简洁
Tomcat的发展简史
Tomcat是一个免费的开源的Servlet容器,他是Apache基金会的Jakarta项目中的一个核心项目,由Apache ,Sun和其他一些公司及个人共同开发而成。

由于有了Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。

Tomcat工作原理
Tomcat是Servlet的运行环境(servlet容器),他是Sun公司的JSWDK基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servert的最新规范。

经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业Java Servlet容器的特性。

Servlet容器
Servlet是一种运行在支持Java语言的服务器上的组件,他与普通的Java类的区别就是它运行在服务器上。

使用Servlet可以轻松的扩展Java网络服务器的功能,为网络客户提供安全可靠,易于移植的动态网页。

由于Java语言本身的平台无关性,加之Servlet运行在服务器端,所以Servlet的运行对用户是完全透明的。

Servlet容器的作用是负责处理客户的请求。

当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。

Tomcat就是起这样的作用的容器(与其他的Servlet容器如Resin等功能县四)。

每一个Servlet的类都执行init() , service() , destroy() 三个函数的自动调用,在启动时调用一次init()函数用以进行参数的初始化,在服务期间每当接收到对该Servlet的请求时都会调用service()函数执行该Servlet的服务操作。

当容器销毁时调用一次destory()函数。

Tomcat工作模式
Tomcat作为Servlet容器,有三种工作模式:独立的Servlet容器,进程内的Servlet 容器和进程外的Servlet容器。

独立的Servlet容器
此时,他是内置在Web服务其中的一部分。

是指使用基于Java的Web服务器的情形。

例如Servlet容器是Java Web Server的一部分。

独立的Server容器是Tomcat的默认模式。

然而,大多数的Web服务器并非基于Java,所以Tomcat又发展了其他两种工作模式以与非基于Java的Web服务器结合。

进程内的Servlet容器
Tomcat作为进程内的Servlet容器时,Servlet容器是作为Web服务器的插件和Java容器的实现。

Web服务器插件在内部地址空间打开一个JVM使Java容器得以在内部运行。

如出现需要调用Servlet的某个请求时,插件将取得对此请求的控制并将它传递(使用JNI)给Java容器。

进程内的容器对于多线程,单进程的服务非常适合,并且提供了很好的运行速度,只是伸缩性有所不足。

进程外的Servlet容器
Tomcat作为进程外的Servlet容器时,Servlet容器运行于Web服务器之外的地址空间,并且作为Web服务器的插件和Java容器的实现的结合。

Web服务器插件和Java容器JVM使用IPC机制(通常是TCP/IP)进行通信。

当一个调用Servlet的请求到达时,插件将取得对此请求的控制并将其传递给Java容器。

进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其它可比的方面更好(如伸缩性,稳定性等)
Tomcat组织结构
Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是Catalina Servlet容器,其他的组件按照一定的格式要求配置在这个顶层容器中。

下面通过分析server.xml文件来理解Tomcat的各个组件是如何组织的。

server.xml 文件的基本组成结构如下:
<Server> <--顶层类元素,代表一个服务器,可包含多个service-->
<Service> <--顶层类元素,可包含一个engine和多个connector-->
<Connector/> <--连接器元素,代表通信接口-->
<Engine> <--容器元素,为Service处理客户请求,可包含多Host-->
<Host> <--容器元素,为Host处理客户请求,可包含多个Context--> <Context/> <--容器元素,为Web应用处理客户请求-->
</Host>
</Engine>
</Service>
</Server>。

相关文档
最新文档