天天看點

Servlet 生命周期簡介說明

Servlet生命周期的概念說明:
       Servlet生命周期指一個Servlet建立到銷毀的過程,
我們将這個過程稱之為"Servlet生命周期"
      

每一個Servlet都擁有以下處理過程

  1. Servlet初始化後調用init()方法
  2. Servlet調用service()方法來處理用戶端的請求
  3. Servlet銷毀前調用destroy() 方法
  4. 最後---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      

繼續閱讀