請解釋 JSP 的生命週期。


JSP 的生命週期定義為從其建立到銷燬的過程。這類似於 servlet 的生命週期,但多了一個步驟,即需要將 JSP 編譯成 servlet。

JSP 遵循的路徑

以下是 JSP 遵循的路徑:

  • 編譯
  • 初始化
  • 執行
  • 清理

JSP 生命週期中的四個主要階段與 Servlet 生命週期非常相似。下面描述了這四個階段:

JSP Life Cycle

JSP 編譯

當瀏覽器請求 JSP 時,JSP 引擎首先檢查是否需要編譯頁面。如果頁面從未被編譯過,或者 JSP 自上次編譯以來已被修改,則 JSP 引擎會編譯頁面。

編譯過程包括三個步驟:

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

JSP 初始化

當容器載入 JSP 時,它會在服務任何請求之前呼叫 **jspInit()** 方法。如果您需要執行特定於 JSP 的初始化,請覆蓋 **jspInit()** 方法:

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

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

JSP 執行

JSP 生命週期中的此階段表示與請求的所有互動,直到 JSP 被銷燬。

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

**_jspService()** 方法將 **HttpServletRequest** 和 **HttpServletResponse** 作為其引數,如下所示:

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

JSP 的 **_jspService()** 方法是根據請求呼叫的。它負責為該請求生成響應,並且此方法還負責為所有七種 HTTP 方法生成響應,即 **GET、POST、DELETE** 等。

JSP 清理

JSP 生命週期中的銷燬階段表示容器正在從使用中移除 JSP。

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

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

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

更新時間: 2019年7月30日

207 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.