Tomcat5启动流程与配置详解 - 编程入门网
一个<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博客 zhangjunhd3.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博客 zhangjunhd4.4 org.apache.catalina. ContainerListener 容器事件监听器,注意的是start,stop是正常的生命周期事件(LiftcycleEvent)不是容器事件。 4.5 org.apache.catalina. Pipel |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |