Tomcat請求過程app
一、用戶點擊網頁內容,請求被髮送到本機端口8080,被在那裏監聽的Coyote HTTP/1.1 Connector得到。jsp
二、Connector把該請求交給它所在的Service的Engine來處理,並等待Engine的迴應。對象
三、Engine得到請求localhost/test/index.jsp,匹配全部的虛擬主機Host。blog
四、Engine匹配到名爲localhost的Host(即便匹配不到也把請求交給該Host處理,由於該Host被定義爲該Engine的默認主機),名爲localhost的Host得到請求/test/index.jsp,匹配它所擁有的全部的Context。Host匹配到路徑爲/test的Context(若是匹配不到就把該請求交給路徑名爲「 」的Context去處理)。table
五、path=「/test」的Context得到請求/index.jsp,在它的mapping table中尋找出對應的Servlet。Context匹配到URL PATTERN爲*.jsp的Servlet,對應於JspServlet類。test
六、構造HttpServletRequest對象和HttpServletResponse對象,做爲參數調用JspServlet的doGet()或doPost().執行業務邏輯、數據存儲等程序。map
七、Context把執行完以後的HttpServletResponse對象返回給Host。請求
八、Host把HttpServletResponse對象返回給Engine。程序
九、Engine把HttpServletResponse對象返回Connector。im
十、Connector把HttpServletResponse對象返回給客戶Browser。