JSP生命週期


在本章中,我們將討論和了解JSP的生命週期。了解JSP低階功能的關鍵在於了解其遵循的簡單生命週期。

JSP生命週期被定義為從建立到破壞的過程。這類似於一個Servlet生命週期,需要一個額外的步驟來將JSP編譯成Servlet。

JSP執行過程

以下是JSP遵循的過程 -

  1. 編譯
  2. 初始化
  3. 執行
  4. 清理

JSP生命週期的四個主要階段與Servlet生命週期非常相似。以下描述了四個階段 -

1.JSP編譯

當瀏覽器請求JSP時,JSP引擎首先檢查是否需要編譯頁面。如果頁面從未被編譯,或者JSP從上一次編譯以來JSP檔案程式碼已被修改,那麼JSP引擎將會編譯頁面。

編譯過程包括三個步驟 -

  • 解析JSP。
  • 將JSP轉換為servlet。
  • 編譯servlet。

2.JSP初始化

當容器載入JSP時,它會在處理任何請求之前呼叫jspInit()方法。 如果需要執行特定於JSP的初始化,那麼可以覆蓋jspInit()方法 -

public void jspInit(){
   // Initialization code...
}

通常,初始化僅執行一次,並且與servlet的init()方法一樣,一般會在jspInit()方法中初始化資料庫連線,開啟檔案和建立查詢表。

3.JSP執行

JSP生命週期的這個階段表示所有與請求的互動,直到JSP被銷毀為止。

每當瀏覽器請求JSP並且頁面已被載入和初始化時,JSP引擎將呼叫JSP中的_jspService()方法。

_jspService()方法以HttpServletRequestHttpServletResponse為引數,如下所示:

void _jspService(HttpServletRequest request, HttpServletResponse response) {
   // Service handling code...
}

根據請求呼叫JSP的_jspService()方法。它負責生成請求的響應,此方法還負責生成對所有七種HTTP方法的響應,即GETPOSTDELETE等。

4.JSP清理

JSP生命週期的清理階段表示當JSP被容器從使用中移除時。

jspDestroy()方法是等效於servlet的destroy方法的JSP方法。當需要執行清理工作時,可以覆蓋jspDestroy()方法,如:釋放資料庫連線或關閉開啟的檔案。

jspDestroy()方法具有以下形式 -

public void jspDestroy() {
   // Your cleanup code goes here.
}