Servlet生命周期簡述
(1)加載和實例化
當Servlet容器啟動或客戶端發送一個請求時,Servlet容器會查找內存中是否存在該Servlet實例,若存在,則直接讀取該實例響應請求;如果不存在,就創建一個Servlet實例。
(2) 初始化
實例化后,Servlet容器將調用Servlet的init()方法進行初始化(一些准備工作或資源預加載工作)。
(3)服務
初始化后,Servlet處於能響應請求的就緒狀態。當接收到客戶端請求時,調用service()的方法處理客戶端請求,HttpServlet的service()方法會根據不同的請求 轉調不同的doXxx()方法。
(4)銷毀
當Servlet容器關閉時,Servlet實例也隨時銷毀。其間,Servlet容器會調用Servlet 的destroy()方法去判斷該Servlet是否應當被釋放(或回收資源)。
用戶第一次訪問Servlet的時候,服務器會創建一個Servlet的實例,那么Servlet中init方法就會執行.任何一次請求服務器都會創建一個新的線程訪問Servlet中的service的方法.在service方法內部根據請求的方式的不同調用doXXX的方法.(get請求調用doGet,post請求調用doPost).當Servlet中服務器中移除掉,或者關閉服務器,Servlet的實例就會被銷毀,那么destroy方法就會執行.