1. 程式人生 > >Servlet最詳細的完整執行流程

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方法

最後放上一張圖作為參考:

在這裡插入圖片描述