1. 程式人生 > >tomcat之詳解URL請求

tomcat之詳解URL請求

訪問請求http://localhost:8080/examples/composite.jsp的處理過程

1.在埠8080啟動Server,並通知Service完成啟動,Service通知Connector完成初始化和啟動過程

2.Connector首先收到這個請求,會呼叫ProtocolHandler完成Http協議的解析,然後交給SocketProcessor處理,解析請求頭,再交給CoyoteAdapter解析請求行和請求體,並把解析資訊封裝到Request和Response物件中

3.把請求(此時應該是Request物件,這裡的Request物件已經封裝了Http請求的資訊)交給Container容器

4.Container容器交給其子容器--Engine容器,並等待Engine容器的處理結果

5.Engine容器匹配其所有的虛擬機器,這裡匹配到Host

6.請求被移交給hostname為localhost的Host容器,host匹配其所有子容器Context,這裡找到contextPath為/examples的Context容器,如果匹配不到就把該請求交給路徑名為“”的Context去處理

7.請求再次被移交給Context容器,Context繼續匹配其子容器Wrapper,由Wrapper容器載入composite.jsp對應的servlet,這裡編譯的servlet是basic_002dcomparisons_jsp.class檔案

8.Context容器根據字尾匹配原則*.jsp找到composite.jsp編譯的java類的class檔案

9.Connector構建一個org.apache.catalina.connector.Request以及org.apache.catalina.connector.Response物件,使用反射呼叫Servlet的service方法

10.Context容器把封裝了響應訊息的Response物件返回給Host容器

11.Host容器把Response返回給Engine容器

12.Engine容器返回給Connector

13.Connector容器把Response返回給瀏覽器

14.瀏覽器解析Response報文

15.顯示資源內容