JSP生命周期
理解關鍵JSP中的低層級功能就是了解簡單的生命周期。
一個JSP的生命周期可以被定義為從它的創作,直到它類似於一個servlet的生命周期,這是需要編譯JSP轉換成Servlet一個額外的步驟銷毀的整個過程。
以下是一個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()方法是等價JSP servlet的destroy方法。覆蓋jspDestroy當您需要執行任何清理,如釋放數據庫連接或關閉打開的文件。
jspDestroy()方法有以下形式:
public void jspDestroy() { // Your cleanup code goes here. }