
- JSP 基礎教程
- JSP - 首頁
- JSP - 概述
- JSP - 環境搭建
- JSP - 架構
- JSP - 生命週期
- JSP - 語法
- JSP - 指令
- JSP - 動作
- JSP - 隱式物件
- JSP - 客戶端請求
- JSP - 伺服器響應
- JSP - HTTP 狀態碼
- JSP - 表單處理
- JSP - 編寫過濾器
- JSP - Cookie 處理
- JSP - 會話跟蹤
- JSP - 檔案上傳
- JSP - 日期處理
- JSP - 頁面重定向
- JSP - 點選計數器
- JSP - 自動重新整理
- JSP - 傳送郵件
- JSP 高階教程
- JSP - 標準標籤庫
- JSP - 資料庫訪問
- JSP - XML 資料
- JSP - JavaBean
- JSP - 自定義標籤
- JSP - 表示式語言
- JSP - 異常處理
- JSP - 除錯
- JSP - 安全性
- JSP - 國際化
- JSP 有用資源
- JSP - 問答
- JSP - 快速指南
- JSP - 有用資源
- JSP - 討論
JSP - 生命週期
本章將討論 JSP 的生命週期。理解 JSP 底層功能的關鍵在於理解它們遵循的簡單生命週期。
JSP 生命週期定義為從建立到銷燬的過程。這類似於 servlet 生命週期,但增加了一個步驟,即需要將 JSP 編譯成 servlet。
JSP 的執行路徑
JSP 的執行路徑如下:
- 編譯
- 初始化
- 執行
- 清理
JSP 生命週期的四個主要階段與 Servlet 生命週期非常相似。四個階段描述如下:

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()方法是 servlet 的 destroy 方法在 JSP 中的等效方法。當需要執行任何清理工作時,例如釋放資料庫連線或關閉開啟的檔案,請覆蓋 jspDestroy。
jspDestroy() 方法具有以下形式:
public void jspDestroy() { // Your cleanup code goes here. }