-
Servlet的生命周期一般分四步,
加載-->實例化-->服務-->銷毀
-
加載:
加載一般是在運行tomcat容器時來完成,將servlet類加載到tomcat中,或者是客戶端發來請求時也可以
-
實例化:
實例化一般是即讀取配置信息、讀取初始化參數等,這些基本上在整個生命周期中只需要執行一次。關於init()方法已經在積累GenericServlet中提供缺省實現,如果不需特殊處理則沒有必要再進行定義,否則要重寫。
-
服務:
服務一般是當容器接收到客戶端請求時,Servlet引擎將創建一個ServletRequest請求對象和一個ServletResponse響應對象,然后把這兩個對象作為參數傳遞給對應Servlet對象的service方法。(該方法是一個重點實現的方法,ServletRequest對象可以獲得客戶端發出請求的相關信息,如請求參數等,ServletResponse對象可以使得Servlet建立響應頭和狀態代碼,並可以寫入響應內容返回給客戶端。在此說明一點,當Servlet中有doGet()或者doPost()方法時,那么service方法就可以省略,默認為調用這兩個方法)
-
銷毀:
銷毀一般是Servlet的卸載是由容器本身定義和實現,在卸載Servlet之前需要調用destroy()方法,以讓Servlet自行釋放占用的系統資源。雖然Java虛擬機提供了垃圾自動回收處理機制,但是有一部分資源卻是該機制不能處理或延遲很久才能處理的,如關閉文件,釋放數據庫連接等。一般tomcat關閉,servlet就會被銷毀,如果想提前銷毀,可以寫一個監聽
-
一個Servlet的生命周期是很短暫的,清楚了Servlet的生命周期會對大家學習jsp非常有幫助,