动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网

谈谈tomcat处理请求过程?

utong

2020.05.16

Tomcat对HTTP请求处理的整体流程是什么?

添加回答

回答(2)

军哥

老师参与

Tomcat对一个HTTP请求处理的整体流程大概如下:

假设请求为:http://localhost:8080/index.jsp

1、用户请求页面,请求被发送到端口8080,被tomcat中监听的Coyote HTTP/1.1 Connector获得; 

2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应; 

3、Engine获得请求http://localhost:8080/index.jsp,匹配server.xml中的虚拟主机Host;

4、Engine匹配到名为localhost的Host,如果匹配不到默认也是交给localhost的Host处理; 

5、根据请求路径/index.jsp匹配Context,Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet,Context匹配到*.jsp的Servlet,对应处理类为JspServlet;

6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost()执行业务逻辑、数据处理等程序;

7、Context把执行完之后的HttpServletResponse对象返回给Host; 

8、Host把HttpServletResponse对象返回给Engine; 

9、Engine把HttpServletResponse对象返回Connector;

10、Connector把HttpServletResponse对象返回给客户Browser;

至此就完成了一个tomcat的请求处理;

时间:05-17 02:49 查看回复 (5) 回复 2 0 举报

utong

面试这么回答行吗?百度上所有的答案都是这一个

时间:05-18 13:04 回复 举报

军哥

@utong

把tomcat的体系结构介绍清楚,最好是看过tomcat源码,这样面试会更从容更有底气,不能记这个步骤,只有这个步骤还不行,要让整个描述更加有血有肉,就得真的看过里面的源码;

时间:05-19 01:14 回复 举报

utong

面试这么回答行吗?百度上所有的答案都是这一个

时间:05-18 13:04 回复 举报

utong

面试这么回答行吗?百度上所有的答案都是这一个

时间:05-18 13:04 回复 举报

启东(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ

@utong
这个东西每个人有每个人的理解,也可以这么回答
时间:05-22 16:58 回复 举报

启东(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ

已采纳

大体了解了

时间:05-22 16:59 查看回复 (0) 回复 0 0 举报

回复