Servlet最詳細的完整執行流程
阿新 • • 發佈:2018-12-04
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方法