Web应用程序必须部署到Web服务器上才能被访问,为了能让Web服务器和Web应用这两个不同的软件协作,首先需要一个中介来制定协作的标准接口,Servlet就是其中最主要的接口,中介方规定:Web服务器可以访问任何一个实现了Servlet接口的应用程序;任何被Web服务器调用的应用程序代码必须位于实现了Servlet接口的类中。
SUN公司作为Java语言的开创者,是当仁不让的接口规范制定者,SUN不仅制定了一系列Web应用和Web服务器进行协作的Java标准接口(统称为Java Servlet API),还对Web服务器发布运行Web应用的一些细节做了规约,SUN公司把这一系列标准Java接口和规范称之为Servlet规范。
Servlet规范把能够发布运行Web应用的Web服务器称为Servlet容器,它能够动态的执行Web应用程序中Servlet类中的代码。由Apache开源组织创建的Tomcat是一个符合Servlet规范的优秀Servlet容器。
Tomcat本身由一系列可配置的组件构成,其核心组件是Servlet容器组件,主要在server.xml中进行配置,如下所示:
</pre><pre name="code" class="html"><Server>
<Service>
<Connector/>
<Engine>
<Host>
<Context></Context>
</Host>
</Engine>
</Service>
</Server>
以上的每个元素都表示一种Tomcat组件,主要包括四类:
一,底层组件,如<Server>和<Service>,它们位于最顶层;
二,连接类元素,主要是<Connector>,表示客户端和服务器之间连接通信信息,负责发送请求到服务器,并将服务器的处理结果返回到客户端
三,容器类元素,用于处理来自客户端的请求并生成响应结果,有四种容器类元素,分别是<Engine>、<Host>、<Context>和<Cluster>,Engine组件为特定的Service组件处理所有的客户端请求,<Host>是特定的虚拟机组件处理所有的客户请求,Context为特定的Web应用处理所有的客户请求,<Cluster>组件为Tomcat集群系统进行会话复制、Context组件的属性复制和集群范围内WAR文件的发布。
四,嵌套类元素,可以嵌套如容器中的元素,如<Value>和<Realm>。
每个组件的细节如下:
<Server>元素代表整个Servlet容器,是Tomcat的最顶层元素。一个<Server>可以包括一个或多个<Service>元素。
<Service>元素:包含一个<Engine>元素和一个或多个<Connector>元素。
<Connector>元素:代表实际和客户端交互的组件,包括接受客户端的请求和向客户端返回结果。
<Engine>元素:处理在同一个<Service>中所有<Connector>的请求。
<Host>元素:在一个<Engine>中可以包含多个<Host>元素,每个<Host>表示一个虚拟主机,它可以包含一个或多个Web应用。
<Context>元素:使用最频繁的元素,每个<Context>代表了运行在虚拟机上的单个Web应用。