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.
}