酷知百科網

位置:首頁 > 職場理財 > 職場就業

Servlet 生命週期

Servlet 生命週期可被定義爲從創建直到毀滅的整個過程
Servlet 透過調用 init () 方法進行初始化。
Servlet 調用 service() 方法來處理客戶端的請求。
Servlet 透過調用 destroy() 方法終止(結束)。
最後,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的

Servlet 生命週期

操作方法

(01)init() 方法init 方法被設計成只調用一次。它在第一次創建 Servlet 時被調用,在後續每次用戶請求時不再調用。因此,它是用於一次性初始化,就像 Applet 的 init 方法一樣。

Servlet 生命週期 第2張

(02)service() 方法service() 方法是執行實際任務的主要方法。Servlet 容器(即 Web 服務器)調用 service() 方法來處理來自客戶端(瀏覽器)的請求,並把格式化的響應寫回給客戶端。每次服務器接收到一個 Servlet 請求時,服務器會產生一個新的線程並調用服務。service() 方法檢查 HTTP 請求類型(GET、POST、PUT、DELETE 等),並在適當的時候調用 doGet、doPost、doPut,doDelete 等方法。下面是該方法的特徵:

Servlet 生命週期 第3張

(03)service() 方法由容器調用,service 方法在適當的時候調用 doGet、doPost、doPut、doDelete 等方法。所以,您不用對 service() 方法做任何動作,您只需要根據來自客戶端的請求類型來重寫 doGet() 或 doPost() 即可。doGet() 和 doPost() 方法是每次服務請求中最常用的方法。下面是這兩種方法的特徵。doGet() 方法GET 請求來自於一個 URL 的正常請求,或者來自於一個未指定 METHOD 的 HTML 表單,它由 doGet() 方法處理

Servlet 生命週期 第4張

(04)destroy() 方法destroy() 方法只會被調用一次,在 Servlet 生命週期結束時被調用。destroy() 方法可以讓您的 Servlet 關閉數據庫連接、停止後臺線程、把 Cookie 列表或點擊計數器寫入到磁盤,並執行其他類似的清理活動。在調用 destroy() 方法之後,servlet 對象被標記爲垃圾回收。destroy 方法定義如下所示:

Servlet 生命週期 第5張

(05)架構圖下圖顯示了一個典型的 Servlet 生命週期方案。第一個到達服務器的 HTTP 請求被委派到 Servlet 容器。Servlet 容器在調用 service() 方法之前加載 Servlet。然後 Servlet 容器處理由多個線程產生的多個請求,每個線程執行一個單一的 Servlet 實例的 service() 方法。

Servlet 生命週期 第6張