Servlet最详细的完整执行流程

Servlet完整执行流程

整体分为三步执行:
第一步:从浏览器输入地址(发起请求)开始分析
第二步:web.xml内容分析
第三步:Tomcat对Servlet的创建

一、从浏览器输入地址(发起请求)开始分析:

地址栏输入:http://localhost:8080/xx/hello

  1. Localhost : 也可能是ip 或者域名 --> 定位服务器主机
  2. 8080 : 定位到tomcat
  3. xx : 上下文路径,tomcat/conf/server.xml中配置的:
    < Context docBase=“F:/workspace/项目名/webapp” path=“xx” />
    通过上面的步骤找到了 docBase后面的项目的真实路径
    根据约定去找到项目中的配置文件 web.xml

二、web.xml内容分析:

  1. 找到url-pattern的值为/hello
  2. 通过上一步中对应servlet-name 找到对应的servlet标签
  3. 找到对应的Servlet的完全限定名:
    cn.itsource._01hello.HelloServlet
    完全限定名仅仅是一个字符串而已,交给Tomcat进行处理
  4. 通过反射来创建对象并调用方法

三、Tomcat对Servlet的创建:

  1. 通过获得 Servlet的完全限定名为参数使用反射来创建一个对象:
    Class.forName(“cn.itsource._01hello.HelloServlet”).newInstance():
    要求自己的Servlet类必须有公共的无参数的构造方法
  2. 如果是第一次访问,就会创建一个Servlet的对象,并缓存起来
  3. 以后访问直接先从缓存中看有没有Servlet对象,有直接使用调用service方法

最后放上一张图作为参考:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36515586/article/details/84779668