Servlet完整执行流程
- 整体分为三步执行:
- 第一步:从浏览器输入地址(发起请求)开始分析
- 第二步:web.xml内容分析
- 第三步:Tomcat对Servlet的创建
一、从浏览器输入地址(发起请求)开始分析:
地址栏输入:http://localhost:8080/xx/hello
- Localhost : 也可能是ip 或者域名 --> 定位服务器主机
- 8080 : 定位到tomcat
- xx : 上下文路径,tomcat/conf/server.xml中配置的:
< Context docBase=“F:/workspace/项目名/webapp” path=“xx” />
通过上面的步骤找到了 docBase后面的项目的真实路径
根据约定去找到项目中的配置文件 web.xml
二、web.xml内容分析:
- 找到url-pattern的值为/hello
- 通过上一步中对应servlet-name 找到对应的servlet标签
- 找到对应的Servlet的完全限定名:
cn.itsource._01hello.HelloServlet
完全限定名仅仅是一个字符串而已,交给Tomcat进行处理 - 通过反射来创建对象并调用方法
三、Tomcat对Servlet的创建:
- 通过获得 Servlet的完全限定名为参数使用反射来创建一个对象:
Class.forName(“cn.itsource._01hello.HelloServlet”).newInstance():
要求自己的Servlet类必须有公共的无参数的构造方法 - 如果是第一次访问,就会创建一个Servlet的对象,并缓存起来
- 以后访问直接先从缓存中看有没有Servlet对象,有直接使用调用service方法