Tomcat的工作流程&原理
相信大家在做JavaWeb项目的时候,都会用到这个服务器,有部分人和我一样,就是会使用,会配置,但是对于其具体是如何工作的还是不够了解,所以接下来就一起看看吧! 看完你就会明白了
首先假设一个请求:
http://localhost:8080/chen/index.jsp
1请求被发送到8080端口,被对应的Connector侦听到该请求。并将获得的请求发送给Engine来处理,并等待来自Engine的回应并返回给客户
2Engine从Connector那里获得该对应的请求localhost:8080/chen/index.jsp,并进行匹配该对应的虚拟主机Host(其Engine中,可以配置多个虚拟主机)
3Engine匹配到名为localhost的Host(一般localhost为默认主机)
4localhost Host获得请求chen/index.jsp并匹配其所拥有的的Context(一个Context对应一个Web应用,一个Web应用由一个或者多个Servlet组成
)如下,是Tomcat中的web.xml配置,对于一个web应用,其默认自开启了JspServlet,还有ssi,cgi等Servlet
<!-- The mapping for the default servlet --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- The mappings for the JSP servlet --> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping> <!-- The mapping for the SSI servlet --> <!-- <servlet-mapping> <servlet-name>ssi</servlet-name> <url-pattern>*.shtml</url-pattern> </servlet-mapping> --> <!-- The mapping for the CGI Gateway servlet --> <!-- <servlet-mapping> <servlet-name>cgi</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping> -->
5匹配到路径为path="/chen"的Context,并获得请求/chen/index.jsp,并在其mapping table中寻找对应的Servlet,Context匹配到URL PATTERN后缀名为.jsp的Servlet,对应于JSPServlet类*
<!-- The mappings for the JSP servlet --> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
6构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
7Context将执行完毕之后的HttpServletResponse对象返回给Host
8Host将HttpServletResponse对象返回给Engine
9Engine将HttpServletResponse对象返回给Connector
10Connector将HttpServletResponse对象返回给客户浏览器
- .NET与java的MVC模式(2):struts2核心工作流程与原理
- Android View 的工作流程和原理 推荐
- Tomcat与Servlet工作流程
- AJAX的实现原理和工作流程
- JSP工作流程及运行原理
- Servlet工作原理解析2(以Tomcat为例)
- 命令行开发第一个Servlet程序并简要介绍Tomcat工作流程
- Struts2框架及实现原理和工作流程
- Android Media Scanner工作流程及原理
- struts2核心工作流程与原理
- Struts 2详细工作流程及原理
- hadoop yarn的原理和工作流程
- struts2核心工作流程与原理
- OSG 中 相交測试 模块 工作流程及原理
- Struts2框架核心工作流程与原理
- YARN原理及其工作流程
- Struts2面试题 Struts2工作流程、Struts2原理
- 搜索引擎工作的基础流程与原理
- struts2核心工作流程与原理 简练精辟!
- Struts2+Spring+Hibernate的工作流程及原理(整理的)