JSP指令元素

 

JSP的運行機制:
JSP容器管理JSP頁面生命週期的兩個階段:轉換階段和執行階段。當有一個對JSP頁面的客戶請求到來時,JSP容器檢驗JSP頁面的語法是否正確,將JSP頁面轉換爲Servlet源文件,然後調用javac工具類編譯Servlet源文件生成字節碼文件,這一階段是轉換階段。接下來,Servlet容器加載轉換後的Servlet類,實例化一個對象處理客戶端的請求,在請求處理完成後,相應對象被JSP容器接收,容器將HTML格式的響應信息發送到客戶端,這一階段是執行階段。
一個JSP頁面由元素和模板數據組成。元素是必須由JSP容器處理的部分,而模板是JSP容器不處理的部分,例如,JSP頁面中的HTML內容會直接發送到客戶端。在JSP2.0規範中,元素有三種類型:指令元素,腳本元素,動作元素。

1 JSP的指令元素:
指令元素主要用於爲轉換階段提供整個JSP頁面的相關信息,指令不會產生任何的輸出到當前的輸出流中。
1.1 page指令:<%@ page attr1="value1" attr2="value2">
page指令有13個屬性.
language="java" 指定在腳本元素中使用的腳本語言,默認是Java
extends="className" 指定JSP頁面轉換後的Servlet類從哪個類繼承,屬性值是完整的限定類名。通常不需要使用這個屬性,JSP容器會提供轉換後的Servlet類的父類。
import="importList" 指定在腳本環境中可以使用的Java類。
session="true|false" 指定在JSP頁面中是否可以使用session對象,默認值是session
buffer="none|sizekb" 指定out對象使用的緩衝區大小,如果設置爲none,將不使用緩衝區,所有的輸出直接通過ServletResponse的PrintWrite對象寫出。設置該值只能以KB爲單位,默認值是8kb
autoFlush="true|false" 指定當緩衝區滿的時候,緩存的輸出是否應該自動刷新。默認值是true
isThreadSafe="true|false" 指定對JSP頁面的訪問是否是線程安全的。默認是true
info="info_text" 指定頁面相關信息,可以通過調用Servlet接口的getServletInfo()方法來得到。
errorPage="error_url" 指定當JSP頁面發生異常時,將轉向哪個錯誤處理頁面。要注意的是:如果一個頁面通過使用該屬性定義了錯誤頁面,那麼在web.xml中定義的任何錯誤將不會被使用。
isErrorPage="true|fasle" 指定當前的JSP頁面是否是另一個JSP頁面的錯誤處理頁面。默認是false
contentType="ctinfo" 指定相應的JSP頁面的MIME類型和字符編碼.例如:<%@ page contentType="text/html; charset="gb2312" %>
pageEncoding="peinfo" 指定JSP頁面的字符編碼,如果沒有設置這個屬性,則JSP頁面使用contentType指定的字符集,如果都沒有指定,則使用ISO-8859-1
isELIgnored="true|false" 定義在JSP頁面中是否忽略執行EL表達式,默認值是false,不忽略,即執行.

1.2 include指令
include指定用戶在JSP頁面靜態包含一個文件<%@ include file="date.jsp" %>

1.3 taglib指令
taglib指令允許頁面使用用戶定製的標籤<%@ taglib uri="tagLibraryURI" prefix="tagPrefix" %>

2 JSP腳本元素
腳本元素包括三個部分:聲明,腳本段和表達式。JSP2.0增加了EL表達式(簡化對變量和對象的訪問),作爲腳本元素的另一個選擇。聲明腳本元素用於聲明在其他腳本元素中可以使用的變量和方法,腳本段是一段Java代碼,用於描述對請求的處理中要執行的動作,表達式腳本元素是Java語言中完成的表達式,在響應請求時被計算,計算的結果將被轉換爲字符串,插入到輸出流中。
這三種腳本元素都是基於<%的語法,如下所示:
<%! this is a declaration %>
<% this is a scriptlet%>
<%=this is an expression%>

3 JSP動作元素
<jsp:useBean><jsp:setProperty><jsp:getProperty>在《在JSP中使用JavaBean》日誌中介紹了
<jsp:param>:它和<jsp:include>,<jsp:forward>,<jsp:plugin>一起使用.語法爲<jsp:param name="name" value="value"/>
<jsp:include>:語法爲<jsp:include page="urlSpec" flush="true|false"/>
<jsp:forward>:語法爲<jsp:forward page="relativeURLspec"/>
<jsp:plugin>:google自己研究,不介紹

發佈了43 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章