快速业务通道

Tomcat5启动流程与配置详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

一个<Server>包含一个或多个<Service>,一个<Service>包含唯一一个<Engine>和一个或多个<Connector>,多个 <Connector>共享一个<Engine>;一个<Engine>包含多个<Host>,每个<Host>定义一个虚拟主机,包含一个或多个web应用<Context>; <Context>元素是代表一个在虚拟主机上运行的Web应用。<Context>标签的描述(Apache官方文档):

Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.

Tomcat5启动流程与配置详解(5)

时间:2011-03-11 51cto博客 zhangjunhd

3.3分析server.xml

-Server-

server元素是JVM的入口点,整个配置文件只有一个,因为server不是容器(container),因此不能嵌套子组件。server在某一指定的端口监听shutdown命令。server可以包含一个或多个service实。

-Service-

service有共享同一个Container的一个或多个Connectors组成,一般Service就是一个Engine,但没有明确规范要求如此。因为Service不是一个Container,因此不能在里面嵌套子组件(比如Loggers/Valves)。

-Connector-

connector就是一个Tomcat与客户端的连接,Tomcat有两种典型的Connector:http,JK2.http connector监听来自Browser的连接(通常在我们熟悉的8080端口),JK2.来自其他WebServer的请求(默认在8009端口监听)。Connector会把获得的请求交给Engine处理。

-Engine-

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理。Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。

-Host-

host代表一个虚拟主机,默认是localhost,host下可以部署多个web application,在我们实际应用中一般要考虑问题的对象就是host。

4.Tomcat主要组件类介绍

4.1 org.apache.catalina.Lifecycle

通用的组件声明周期接口,一般Tomcat的组件都要实现这个接口(但不是必须的),这个接口是为所有组件提供相同的start和stop。

4.2 org.apache.catalina. LifecycleListener

该接口用于监听一些重要事件(包括实现了Lifecycle接口组件产生的start,stop事件)。

4.3 org.apache.catalina.Container

容器是用于从客户端取得请求(request)并且处理请求并回复给客户端(response)的对象。容器可以支持(可选)pipeline,以便能在运行时按配置的顺序处理请求。

在Tomcat里面,容器在概念上存在以下几层:

-Engine-请求处理入口点,可以包含多个Host和Context。

-Host-代表一个虚拟主机。

-Context-代表单个ServletContext,可以包含多个Wrappers。

-Wrapper-代表单个Servlet,如果Servlet实现了SingleThreadModel,可以代表单个Servlet的多个实例。

容器为了实现自己的功能经常要绑定一些其他组件,这些组件的功能可能被共享,也可以被单独定制,下面是被使用的组件:

-Loader-ClassLoader,装载Java Classes。

-Logger-实现了ServletContext的log方法,用于记录日志。

-Manage-管理与容器绑定的session池。

-Realm-用户安全管理。

-Resources-JNDI资源访问

Tomcat5启动流程与配置详解(6)

时间:2011-03-11 51cto博客 zhangjunhd

4.4 org.apache.catalina. ContainerListener

容器事件监听器,注意的是start,stop是正常的生命周期事件(LiftcycleEvent)不是容器事件。

4.5 org.apache.catalina. Pipel

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号