tomcat處理請求的過程

來源:互聯網
上載者:User

我們知道了tomcat的啟動過程,現在來看一下tomcat的處理請求的過程。


假設來自客戶的請求為:http://localhost:8080/test/index.jsp

1、請求被發送到本機連接埠8080,被在那裡偵聽的Coyote HTTP/1.1 Connector獲得
2、Connector把該請求交給它所在的Service的Engine來處理,並等待Engine的回應
3、Engine獲得請求localhost:8080/test/index.jsp,匹配它所有虛擬機器主機Host
4、Engine匹配到名為localhost的Host(即使匹配不到也把請求交給該Host處理,因為該Host被定義為該Engine的預設主控件)
5、localhost Host獲得請求/test/index.jsp,匹配它所擁有的所有Context
6、Host匹配到路徑為/test的Context(如果匹配不到就把該請求交給路徑名為""的Context去處理)
7、path="/test"的Context獲得請求/index.jsp,在它的mapping table中尋找對應的servlet

對於jsp,第一次訪問會先翻譯成servlet,所以第一次訪問jsp會比較慢。

servlet預設在tomcat中只有一個執行個體。如果不配置load-on-startup,那麼在第一次訪問的時候初始化。

8、Context匹配到URL PATTERN為*.jsp的servlet,對應於JspServlet類
9、構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用JspServlet的doGet或doPost方法
10、Context把執行完了之後的HttpServletResponse對象返回給Host
11、Host把HttpServletResponse對象返回給Engine
12、Engine把HttpServletResponse對象返回給Connector
13、Connector把HttpServletResponse對象返回給客戶browser


原文:http://my.oschina.net/whp/blog/37586

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.