1. 程式人生 > >容器完整處理一個http請求的過程

容器完整處理一個http請求的過程

初學java web的朋友們應該都知道tomcat容器,但是tomcat是如何完成一次http請求的過程,這裡做一個記錄。

  • 當用戶在客戶端點選一個連結,該連結的URL指向一個servlet,經過網路轉發到應用所在的web伺服器的,此時web伺服器不是直接把申請發給servlet本身,而是傳送給部署該servlet的容器;
  • 容器收到該請求後,判定該請求為servlet請求後,便會建立一個HttpServletRequest和一個HttpServletResponce物件;
  • 接下來容器會根據URL,從部署描述檔案(web.xml)中找到對應的servlet的,併為這一個請求建立或分配一個執行緒,並把HttpServletRequest和HttpServletResponce物件傳遞給該執行緒;
  • 容器根據http請求的不同型別(get或者post)通過呼叫servicce方法從而呼叫doGet()和doPost()方法;
  • 假設呼叫的doPost方法,doPost()方法處理完對應的業務邏輯後,把結果填入響應物件。
  • 容器結束servlet執行緒,並將respose物件轉換為http響應返回給客戶端,而後刪除HttpServletRequest和HttpServletResponce物件。