亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
JSP 基礎(chǔ)教程 JSP 開(kāi)發(fā)環(huán)境搭建 JSP 結(jié)構(gòu) JSP 生命周期 JSP 語(yǔ)法 JSP 指令 JSP 動(dòng)作元素 JSP 隱式對(duì)象 JSP 客戶(hù)端請(qǐng)求 JSP 服務(wù)器響應(yīng) JSP HTTP 狀態(tài)碼 JSP 表單處理 JSP 過(guò)濾器 JSP Cookies 處理 JSP Session JSP 文件上傳 JSP 日期處理 JSP 頁(yè)面重定向 JSP 點(diǎn)擊量統(tǒng)計(jì) JSP 自動(dòng)刷新 JSP 發(fā)送郵件 JSP 高級(jí)教程 JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL) <c:out> 標(biāo)簽 <c:set> 標(biāo)簽 <c:remove> 標(biāo)簽 <c:catch> 標(biāo)簽 <c:if> 標(biāo)簽 <c:choose> <c:import> 標(biāo)簽 <c:forEach> <c:param> 標(biāo)簽 <c:redirect> 標(biāo)簽 <fmt:formatNumber>標(biāo)簽 <fmt:parseNumber> 標(biāo)簽 <fmt:formatDate> 標(biāo)簽 <fmt:parseDate> 標(biāo)簽 <fmt:bundle> 標(biāo)簽 <fmt:setLocale> 標(biāo)簽 <fmt:setBundle> 標(biāo)簽 <fmt:timeZone> 標(biāo)簽 <fmt:setTimeZone> 標(biāo)簽 <fmt:message> 標(biāo)簽 <fmt:requestEncoding> 標(biāo)簽 <sql:setDataSource> 標(biāo)簽 <sql:query> 標(biāo)簽 <sql:update> 標(biāo)簽 <sql:param> 標(biāo)簽 <sql:dateParam> 標(biāo)簽 <sql:transaction> 標(biāo)簽 <x:out> 標(biāo)簽 <x:parse> 標(biāo)簽 <x:set> 標(biāo)簽 <x:if> 標(biāo)簽 <x:forEach> 標(biāo)簽 <x:choose> <x:transform> 標(biāo)簽 <x:param> 標(biāo)簽 fn:contains()函數(shù) fn:containsIgnoreCase()函數(shù) fn:endsWith()函數(shù) fn:escapeXml()函數(shù) fn:indexOf()函數(shù) fn:join()函數(shù) fn:length()函數(shù) fn:replace()函數(shù) fn:split()函數(shù) fn:startsWith()函數(shù) fn:substring()函數(shù) fn:substringAfter()函數(shù) fn:substringBefore()函數(shù) fn:toLowerCase()函數(shù) fn:toUpperCase()函數(shù) fn:trim()函數(shù) JSP 連接數(shù)據(jù)庫(kù) JSP XML 數(shù)據(jù)處理 JSP JavaBean JSP 自定義標(biāo)簽 JSP 表達(dá)式語(yǔ)言 JSP 異常處理 JSP 調(diào)試 JSP 國(guó)際化
watak

JSP 生命周期


理解JSP底層功能的關(guān)鍵就是去理解它們所遵守的生命周期。

JSP生命周期就是從創(chuàng)建到銷(xiāo)毀的整個(gè)過(guò)程,類(lèi)似于servlet生命周期,區(qū)別在于JSP生命周期還包括將JSP文件編譯成servlet。

以下是JSP生命周期中所走過(guò)的幾個(gè)階段:

  • 編譯階段:

    servlet容器編譯servlet源文件,生成servlet類(lèi)

  • 初始化階段:

    加載與JSP對(duì)應(yīng)的servlet類(lèi),創(chuàng)建其實(shí)例,并調(diào)用它的初始化方法

  • 執(zhí)行階段:

    調(diào)用與JSP對(duì)應(yīng)的servlet實(shí)例的服務(wù)方法

  • 銷(xiāo)毀階段:

    調(diào)用與JSP對(duì)應(yīng)的servlet實(shí)例的銷(xiāo)毀方法,然后銷(xiāo)毀servlet實(shí)例

很明顯,JSP生命周期的四個(gè)主要階段和servlet生命周期非常相似,下面給出圖示:


JSP編譯

當(dāng)瀏覽器請(qǐng)求JSP頁(yè)面時(shí),JSP引擎會(huì)首先去檢查是否需要編譯這個(gè)文件。如果這個(gè)文件沒(méi)有被編譯過(guò),或者在上次編譯后被更改過(guò),則編譯這個(gè)JSP文件。

編譯的過(guò)程包括三個(gè)步驟:

  • 解析JSP文件。
  • 將JSP文件轉(zhuǎn)為servlet。
  • 編譯servlet。

JSP初始化

容器載入JSP文件后,它會(huì)在為請(qǐng)求提供任何服務(wù)前調(diào)用jspInit()方法。如果您需要執(zhí)行自定義的JSP初始化任務(wù),復(fù)寫(xiě)jspInit()方法就行了,就像下面這樣:

public void jspInit(){
  // 初始化代碼
}

一般來(lái)講程序只初始化一次,servlet也是如此。通常情況下您可以在jspInit()方法中初始化數(shù)據(jù)庫(kù)連接、打開(kāi)文件和創(chuàng)建查詢(xún)表。


JSP執(zhí)行

這一階段描述了JSP生命周期中一切與請(qǐng)求相關(guān)的交互行為,直到被銷(xiāo)毀。

當(dāng)JSP網(wǎng)頁(yè)完成初始化后,JSP引擎將會(huì)調(diào)用_jspService()方法。

_jspService()方法需要一個(gè)HttpServletRequest對(duì)象和一個(gè)HttpServletResponse對(duì)象作為它的參數(shù),就像下面這樣:

void _jspService(HttpServletRequest request,
                 HttpServletResponse response)
{
   // 服務(wù)端處理代碼
}

_jspService()方法在每個(gè)request中被調(diào)用一次并且負(fù)責(zé)產(chǎn)生與之相對(duì)應(yīng)的response,并且它還負(fù)責(zé)產(chǎn)生所有7個(gè)HTTP方法的回應(yīng),比如GET、POST、DELETE等等。


JSP清理

JSP生命周期的銷(xiāo)毀階段描述了當(dāng)一個(gè)JSP網(wǎng)頁(yè)從容器中被移除時(shí)所發(fā)生的一切。

jspDestroy()方法在JSP中等價(jià)于servlet中的銷(xiāo)毀方法。當(dāng)您需要執(zhí)行任何清理工作時(shí)復(fù)寫(xiě)jspDestroy()方法,比如釋放數(shù)據(jù)庫(kù)連接或者關(guān)閉文件夾等等。

jspDestroy()方法的格式如下:

public void jspDestroy()
{
   // 清理代碼
}

實(shí)例

JSP生命周期代碼實(shí)例如下所示:

<%@ page contentType="text/html; charset=GB2312" %>
<html><head><title>life.jsp</title></head><body>

<%! 
  private int initVar=0;
  private int serviceVar=0;
  private int destroyVar=0;
%>
  
<%!
  public void jspInit(){
    initVar++;
    System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
  }
  public void jspDestroy(){
    destroyVar++;
    System.out.println("jspDestroy(): JSP被銷(xiāo)毀了"+destroyVar+"次");
  }
%>

<%
  serviceVar++;
  System.out.println("_jspService(): JSP共響應(yīng)了"+serviceVar+"次請(qǐng)求");

  String content1="初始化次數(shù) : "+initVar;
  String content2="響應(yīng)客戶(hù)請(qǐng)求次數(shù) : "+serviceVar;
  String content3="銷(xiāo)毀次數(shù) : "+destroyVar;
%>

<h1><%=content1 %></h1>
<h1><%=content2 %></h1>
<h1><%=content3 %></h1>

</body></html>

關(guān)于我們 聯(lián)系我們 留言板

手冊(cè)網(wǎng)

Artikel sebelumnya: Artikel seterusnya: