Tomcat分析--结构设计
2016-02-12 20:19
369 查看
喵喵喵。。。。之前一段时间在调试tomcat,分析结构,还找出来原来看不懂的how tomcat works。。。跟着写了一阵子。。。感觉还是学到了写东西的。。。那记录一下吧
先说说tomcat的系统架构。。。tomcat中最顶层的容器是server,代表整个服务器,server里有一个或多个service,表示具体服务。service主要包含两部分:connector和container.
connector用于处理连接相关的事情,并提供socket与request,response的转换,container用于封装和管理servlet,以及具体处理request请求。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201602/12/200fd93b45b1f6cee60aaa63a3d9b483)
Catalina--Tomcat中的server由catalina来管理,不过它的入口方法在Bootstrap类。Catalina是整个tomcat的管理者,是开始/关闭shell脚本的主类。它里面有三个方法load,start,stop分别用来管理整个服务器的生命周期:
--load方法用于根据conf/server.xml文件创建server并调用server的init方法进行初始化。
--start方法用于开启服务器
--stop方法用于停止服务器
Service--Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理。
Connector--实现某一协议的连接器,如默认的有实现HTTP、HTTPS、AJP协议的。
Container--可以理解为处理某类型请求的容器,处理的方式一般为把处理请求的处理器包装为Valve对象,并按一定顺序放入类型为Pipeline的管道里。Container有多种子类型:Engine、Host、Context和Wrapper,这几种子类型Container依次包含,处理不同粒度的请求。另外Container里包含一些基础服务,如Loader、Manager和Realm。
Engine--Engine包含Host和Context,接到请求后仍给相应的Host在相应的Context里处理。
Host--就是我们所理解的虚拟主机。
Context--就是我们所部属的具体Web应用的上下文,每个请求都在是相应的上下文里处理的。
Wrapper--Wrapper是针对每个Servlet的Container,每个Servlet都有相应的Wrapper来管理。
下面就是些被Container所用的基础组件:
Loader--是被Container用来载入各种所需的Class。
Manager--是被Container用来管理Session池。
Realm--是用来处理安全里授权与认证。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201602/12/99e80187dec3df9ccf0b00e365f492b0)
参考:
1. 看透spring MVC 源代码分析与实际
2. http://blog.csdn.net/cutesource/article/details/5006062
先说说tomcat的系统架构。。。tomcat中最顶层的容器是server,代表整个服务器,server里有一个或多个service,表示具体服务。service主要包含两部分:connector和container.
connector用于处理连接相关的事情,并提供socket与request,response的转换,container用于封装和管理servlet,以及具体处理request请求。
Catalina--Tomcat中的server由catalina来管理,不过它的入口方法在Bootstrap类。Catalina是整个tomcat的管理者,是开始/关闭shell脚本的主类。它里面有三个方法load,start,stop分别用来管理整个服务器的生命周期:
--load方法用于根据conf/server.xml文件创建server并调用server的init方法进行初始化。
--start方法用于开启服务器
--stop方法用于停止服务器
Service--Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理。
Connector--实现某一协议的连接器,如默认的有实现HTTP、HTTPS、AJP协议的。
Container--可以理解为处理某类型请求的容器,处理的方式一般为把处理请求的处理器包装为Valve对象,并按一定顺序放入类型为Pipeline的管道里。Container有多种子类型:Engine、Host、Context和Wrapper,这几种子类型Container依次包含,处理不同粒度的请求。另外Container里包含一些基础服务,如Loader、Manager和Realm。
Engine--Engine包含Host和Context,接到请求后仍给相应的Host在相应的Context里处理。
Host--就是我们所理解的虚拟主机。
Context--就是我们所部属的具体Web应用的上下文,每个请求都在是相应的上下文里处理的。
Wrapper--Wrapper是针对每个Servlet的Container,每个Servlet都有相应的Wrapper来管理。
下面就是些被Container所用的基础组件:
Loader--是被Container用来载入各种所需的Class。
Manager--是被Container用来管理Session池。
Realm--是用来处理安全里授权与认证。
参考:
1. 看透spring MVC 源代码分析与实际
2. http://blog.csdn.net/cutesource/article/details/5006062
相关文章推荐
- tomcat-闪退和启动两个tomcat解决方法
- Windows环境Apache,Tomcat集群,动静分离,负载均衡
- Mac下tomcat的安装与配置
- Tomcat
- 阿里云服务器 mysql + jdk +vsftp +tomcat
- Centos系统搭建tomcat8和tomcat9
- Ecplise中指定tomcat里Web项目发布文件
- Web 项目没有发布到我们安装的tomcat目录下
- Maven 项目无法在Ecplise加进tomcat server
- tomcat项目加载报错
- 2016-2-10 tomcat基础学习
- Tomcat的安装与部署
- tomcat【1】(什么时候需要重启tomcat)
- windows下tomcat只更改配置文件设置JRE_HOME,不更改环境变量
- MyEclipse 配置Tomcat7.x
- ubuntu14.04 配置tomcat8
- Tomcat7源码分析(二)组件生命周期详解
- 进入tomcat的app manager界面需要配置的tomcat-users.xml
- tomcat 服务开机自启动
- JAVA企业级应用TOMCAT实战 【转】