1、Tomcat请求处理流程

请求处理流程分析
image.png

2、请求处理流程示意图

image.png

3、Mapper组件体系结构

image.png

4、源码发布项目

image.png

Tomcat的源码就在这里,因为该流程是Tomcat的请求处理流程。Tomcat就需要有请求,有请求就必须要发布一个应用。至少要有一个demo,把这个demo交给Tomcat。然后启动,再然后访问demo,最后就可以进到源代码里面查看了。

写一个简单的web应用案例——>部署到tomcat软件中(不是源代码工程)
最终目的: 希望的是把web应用案例部署到tomcat源代码工程中

1、写一个web项目

image.png
image.png

2、写一个Servlet

等下要进行servlet请求,所以要写一个Servlet,然后引入doget/dopost

image.png

  1. public class ResumeServlet extends HttpServlet {
  2. @Override
  3. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  4. System.out.println("======webdemo的doGet方法执行");
  5. }
  6. @Override
  7. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  8. System.out.println("======webdemo的doPost方法执行");
  9. }
  10. }

3、在web.xml中对Servlet进行配置

    <servlet>
        <servlet-name>rservlet</servlet-name>
        <servlet-class>com.slin.edu.servlet.ResumeServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>rservlet</servlet-name>
        <url-pattern>/resume/addresume</url-pattern>
    </servlet-mapping>

4、把项目发布一下

image.png

image.png
image.png

image.png

说明这个webdemo是可用的。Servlet是能访问到的。

5、把webdemo项目加载到源码中

image.png

image.png

image.png
image.png
说明写的webdemo被Tomcat源代码发布了。
image.png

6、Tomcat源码查看

1、找出Tomcat请求入口的源代码

image.png

image.png

2、打个断点,Debug启动

然后发送一个请求:http://localhost:8080/webdemo/resume/addresume

image.png

image.png
image.png

image.png
image.png

image.png

image.png

image.png
image.png
image.png
image.png

image.png
image.png

image.png

找对应的host、context、wrppar,并封装到对象中
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

image.png
image.png

image.png

image.png
image.png

image.png
真正的调用请求的方法去执行请求。
image.png

先解析到一个类中,然后根据url获取出他们,调用具体的执行方法。