关于Tomcat运行原理的一些分析
2017-06-20 14:05
197 查看
前言:Tomcat作为Sun公司官方推荐的jsp和Servlet容器越来越多的受到原件公司和开发人员的喜爱。今天就Tomcat的组成部分和运行原理进行一些讨论。
一、Tomcat的各个组件是在/conf/server.xml中配置的。
<server>顶层类元素,包含多个service
<service>顶层类元素,包含一个Engin和多个Connector
<connector port="8080" protocol="HTTP/1.1">链接类容器,代表通信接口
<connector port="8009" protocol="AJP/1.3">
<Engine>容器元素,为Service处理客户请求,含多个Host
<Host>容器元素,为Host处理客户请求,含多个Context
<Context>为web应用处理客户请求
</service>
</server>
一个java web应用在tomcat中与一个Context对应,是一一对应关系
二、Tomcat Server处理一个http请求的过程
假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp
1)请求被发送到本机端口8080 ,被在那里监听的coyote HTTP/1.1 Connector 获得
2)Connector把该请求交给他所在的service的的Engine来处理,并等待来自Engine的回应。
3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配他所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser
一、Tomcat的各个组件是在/conf/server.xml中配置的。
<server>顶层类元素,包含多个service
<service>顶层类元素,包含一个Engin和多个Connector
<connector port="8080" protocol="HTTP/1.1">链接类容器,代表通信接口
<connector port="8009" protocol="AJP/1.3">
<Engine>容器元素,为Service处理客户请求,含多个Host
<Host>容器元素,为Host处理客户请求,含多个Context
<Context>为web应用处理客户请求
</service>
</server>
一个java web应用在tomcat中与一个Context对应,是一一对应关系
二、Tomcat Server处理一个http请求的过程
假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp
1)请求被发送到本机端口8080 ,被在那里监听的coyote HTTP/1.1 Connector 获得
2)Connector把该请求交给他所在的service的的Engine来处理,并等待来自Engine的回应。
3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配他所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser
相关文章推荐
- 关于uboot fastboot 的一些原理分析
- [读书笔记][深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白
- BT运行原理分析及内网提速方法(转)
- 关于TOmcat的一些小小的知识
- [读书笔记][深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白
- 关于编码、开发、分析、设计、项目管理的一些随笔
- ASP.NET 2.0运行原理及其过程简要分析
- 游戏外挂原理和技术分析(关于魔力宝贝 )
- 关于递归的一些分析
- 关于TOMCAT运行问题
- 关于注册的一些简单流程分析图
- 关于Basic程序解释器及编译原理的简单化(1)---Basic器的语法分析及主要代码
- 游戏外挂原理和技术分析(关于魔力宝贝)
- 关于Tomcat配置的一些文章地址
- 分析我关于路由协议的一些技术感想
- 关于Basic程序解释器及编译原理的简单化(1)--词法分析和代数式求值
- 关于使用初始化块初始化变量的几种情况的运行结果分析
- Tomcat 原理解说:Web容器功能分析
- 关于Session_End()运行机制的一些细节!
- 关于Oracle数据库热备份原理深入分析