1. 程式人生 > >Servlet生命週期

Servlet生命週期

Servlet部署在容器裡,它的生命週期由容器管理。Servlet的生命週期概括為以下幾個階段。

(1)當Web客戶請求Servlet服務或當Web服務啟動時,容器環境載入一個Java Servlet類。

(2)容器環境也將根據客戶請求建立一個Servlet物件例項,或者建立多個Servlet物件例項,並把這些例項加入到Servlet例項池中。

(3)容器環境呼叫Servlet的初始化方法init() 進行初始化。這需要給init() 方法傳入一個ServletConfig物件,ServletConfig物件包含了初始化引數和容器環境的資訊,並負責向Servlet傳遞資料,如果傳遞失敗,則會發生ServletException異常,Servlet將不能正常工作。

(4)容器環境利用一個HttpServletRequest和HttpServletResponse物件,封裝從Web客戶接收到的HTTP請求和由Servlet生成的響應。

(5)環境容器把HttpServletRequest和HttpServletResponse物件傳遞給HttpServlet.service() 方法。這樣,一個定製的Java Servlet就可以訪問這種HTTP請求和響應介面。service() 方法可被多次呼叫,各呼叫過程執行在不同的執行緒中,互不干擾。

(6)定製的Java Servlet從HttpServletRequest物件讀取HTTP請求資料,訪問來自HttpSession或Cookie物件的狀態資訊,進行特定應用的處理,並且用HttpServletResponse物件生成HTTP響應資料。

(7)當Web伺服器和容器關閉時,會自動呼叫HttpServlet.destroy() 方法關閉所有開啟的資源,並進行一些關閉前的處理。