JSP 生命週期

JSP 生命週期
理解JSP底層功能的關鍵就是去理解它們所遵照的生命週期。
JSP生命週期就是從建立到銷燬的整個過程,相似於servlet生命週期,區別在於JSP生命週期還包括將JSP文件編譯成servlet。
如下是JSP生命週期中所走過的幾個階段:
編譯階段:servlet容器編譯servlet源文件,生成servlet類
初始化階段:加載與JSP對應的servlet類,建立其實例,並調用它的初始化方法
執行階段:調用與JSP對應的servlet實例的服務方法
銷燬階段:調用與JSP對應的servlet實例的銷燬方法,而後銷燬servlet實例
。。。
JSP編譯
當瀏覽器請求JSP頁面時,JSP引擎會首先去檢查是否須要編譯這個文件。若是這個文件沒有被編譯過,或者在上次編譯後被更改過,則編譯這個JSP文件。
編譯的過程包括三個步驟:
解析JSP文件。
將JSP文件轉爲servlet。
編譯servlet。
。。。
JSP初始化http://www.iis7.com/a/lm/yczmljgj/
容器載入JSP文件後,它會在爲請求提供任何服務前調用jspInit()方法。若是您須要執行自定義的JSP初始化任務,複寫jspInit()方法就好了,就像下面這樣:
public void jspInit(){
  // 初始化代碼
}
通常來說程序只初始化一次,servlet也是如此。一般狀況下您能夠在jspInit()方法中初始化數據庫鏈接、打開文件和建立查詢表。
。。。
JSP執行
這一階段描述了JSP生命週期中一切與請求相關的交互行爲,直到被銷燬。
當JSP網頁完成初始化後,JSP引擎將會調用_jspService()方法。
_jspService()方法須要一個HttpServletRequest對象和一個HttpServletResponse對象做爲它的參數,就像下面這樣:
void _jspService(HttpServletRequest request,HttpServletResponse response)
{
   // 服務端處理代碼
}
_jspService()方法在每一個request中被調用一次而且負責產生與之相對應的response,而且它還負責產生全部7個HTTP方法的迴應,好比GET、POST、DELETE等等。
。。。
JSP清理
JSP生命週期的銷燬階段描述了當一個JSP網頁從容器中被移除時所發生的一切。
jspDestroy()方法在JSP中等價於servlet中的銷燬方法。當您須要執行任何清理工做時複寫jspDestroy()方法,好比釋放數據庫鏈接或者關閉文件夾等等。
jspDestroy()方法的格式以下:
public void jspDestroy()
{
   // 清理代碼
}數據庫