Servlet生命周期的概念說明:
Servlet生命周期指一個Servlet建立到銷毀的過程,
我們将這個過程稱之為"Servlet生命周期"
每一個Servlet都擁有以下處理過程
- Servlet初始化後調用init()方法
- Servlet調用service()方法來處理用戶端的請求
- Servlet銷毀前調用destroy() 方法
- 最後---Servlet 是由 JVM 的垃圾回收器進行垃圾回收的
init() 方法
init方法在第一次建立Servlet時被調用
後續使用者調用此Servlet時,無需再次運作init()方法
當使用者第一次調用Servlet對應URL時,
Servlet被建立,
我們也可以指定Servlet在伺服器中第一次啟動時加載
當使用者調用一個 Servlet 時,就會建立一個 Servlet 執行個體,
每一個使用者請求都會産生一個新的線程,
适當的時候移交給 doGet 或 doPost 方法
init() 方法簡單地建立或加載一些資料,
這些資料将被用于 Servlet 的整個生命周期
例:init 方法
public void init() throws ServletException {
// 初始化代碼...
}
service()方法
service() 方法是執行實際任務的主要方法
Servlet容器(即Web 伺服器)調用service()方法來處理來自用戶端(浏覽器)的請求
将格式化資料傳回給用戶端
當伺服器收到Servlet請求時,
伺服器會産生一個新的線程并調用服務
service() 方法中會檢查http的請求類型(GET、POST、PUT、DELETE等),
并調用相應的doGet、doPost、doPut,doDelete 等方法
例:
service方法定義
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}
service()方法由web容器調用
service 方法然後調用doGet,doPost,doPut,doDelete等方法
是以我們隻需将相應的代碼放入doGet()及doPost()方法中
doGet()方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代碼
}
doPost()方法
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代碼
}
destroy()方法
destroy() 方法隻會被調用一次
在Servlet生命周期結束時被調用
destroy() 方法可以讓您的Servlet 關閉資料庫連接配接
停止背景線程
把 Cookie 清單或點選計數器寫入到磁盤
并執行其他類似的清理活動
servlet對象被标記為垃圾回收
destroy方法定義如下所示:
public void destroy() {
// 終止化代碼...
}
轉自:http://java265.com/Servlet/202108/176.html