針對 Servlet
的每次請求,Web 服務器在調用 service() 方法之前,都會創建 HttpServletRequest
和 HttpServletResponse
對象。其中,HttpServletRequest
對象用于封裝 HTTP 請求消息,簡稱 request 對象。HttpServletResponse
對象用于封裝 HTTP 響應消息,簡稱 response
對象。瀏覽器訪問 Servlet
的交互過程如圖 1 所示。
圖 1 瀏覽器訪問Servlet過程
在圖 1 中,首先瀏覽器向 Web 服務器發送了一個 HTTP
請求,Web 服務器根據收到的請求,會先創建一個 HttpServletRequest
和 HttpServletResponse
對象,然后再調用相應的 Servlet
程序。
在 Servlet
程序運行時,它首先會從 HttpServletRequest
對象中讀取數據信息,然后通過 service()
方法處理請求消息,并將處理后的響應數據寫入到 HttpServletResponse
對象中。最后,Web 服務器會從HttpServletResponse
對象中讀取到響應數據,并發送給瀏覽器。
需要注意的是,在 Web
服務器運行階段,每個 Servlet
都只會創建一個實例對象,針對每次 HTTP
請求,Web 服務器都會調用所請求Servlet
實例的service(HttpServletRequest request,HttpServletResponse response)
方法,并重新創建一個 request
對象和一個 response
對象。