一直都没有搞明白tomcat中server、service、Engine、Host、Context概念的意义,最近认真看了《Tomcat 6 Developer Guide》,有了进一步的了解。
1. 组件的分类
顶层组件:Server、Service,别的组件都是隶属于这些顶层组件。
Container:Engine,Host和Context,用于处理请求,返回结果。
嵌套组件:Valve---可重用的工作单元;PipeLine一组Valve一起工作;Realm用于帮助一个特定的容器来建立容器管理的安全区。Loader:加载servlet类的方式。Manager:管理每个web应用的session。Resource:web应用的静态资源和获取这些资源的机制。Listener允许在容器生命周期的重要节点上插入一段自定义的处理程序。例如:一个组件启动或者停止的时候。
Connector:连接器,连接外部客户(例如浏览器)和tomcat容器的连接终端。
Server:代表了一个运行的tomcat实例,在一个虚拟机中仅存在一个实例。实现类:org.apache.catalina.core.StandardServer
Service:代表tomcat内部处理一组请求的组件。
连接器:注意连接器和Engine运行在同一个JVM中
Engine:代表了一个运行着的Catalina Servlet Engine实例,并组成了一个servlet容器的核心功能。一个service之中只能有一个Engine。
Virtual Host:运行web应用的容器。域名和Application base folder。
IP-based virtual hosting
Context大家就不陌生了吧?
待续。。。。