JSP標簽迅速檢索
發(fā)表時間:2024-06-09 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]<%! 變量,方法和類聲明區(qū) (Declarations) %> 在此所聲明的變量,方法和類都會被保留成唯一的一份,直到此JSP程序停止執(zhí)行為止,都會一直存在;也就是說,所有請求服務(wù)都是共用這一份,它是同時被共享的。例如: <%! int i; void method() %&g...
<%! 變量,方法和類聲明區(qū) (Declarations) %>
在此所聲明的變量,方法和類都會被保留成唯一的一份,直到此JSP程序停止執(zhí)行為止,都會一直存在;也就是說,所有請求服務(wù)都是共用這一份,它是同時被共享的。例如:
<%!
int i;
void method(){}
%>
<% 程序代碼區(qū) (Scriptlets) %>
可放入任何標準的JAVA程序代碼。
<%= 輸出表達式 (Expressions) %>
必須是字符串或執(zhí)行的結(jié)果可以被轉(zhuǎn)成字符串類型。例如:
<%= "任何字符" %>
<%-- 注解區(qū) (Comments) --%>
注解的內(nèi)容是不會被執(zhí)行的。而除了這種方式之外,你也可以用下面兩種方式來注解:
<% // 注解 %>
<% /* 注解 */ %>
page編譯指令
Page編譯指令是用來設(shè)定JSP程序個別的屬性和它與JSP Container要如何溝通,也就是告訴JSP Engine該如何執(zhí)行這個JSP程序,以服務(wù)來自客戶端的請求。
語法
<%@ page Attribute_List %>
Attribute_List :: { language = "scriptingLanguage" }
{ extends = "className" }
{ import = "importList" }
{ session = "true false" }
{ buffer = "none sizekb" }
{ autoFlush = "true false" }
{ isTreadSafe = "true false" }
{ info = "infoText" }
{ errorPage = "errorPageURL" }
{ isErrorPage = "true false" }
{ contentType = "contentTypelnfo" }
language="scriptingLanguage"
設(shè)定所用的描述語言,默認值是"java",也是目前唯一有效的設(shè)定值。
extends="className"
設(shè)定所產(chǎn)生出來的class所要繼承的java類別,這個屬性一般都不需要去設(shè)定它,即使要設(shè)定,也必須非常小心,否則可能會影響JSP Engine的正常執(zhí)行。默認值是HttpJspBase,它本身是實作HttpJspPage界面的類,可以參考javax.servlet.jsp.*所提供的API。
import="importList"
設(shè)定這個JSP程序所要用到的JAVA API或是自行定義的類。默認值是java.language.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.* 和javax.servlet.jsp.tagext.*類。import是唯一可以重復(fù)設(shè)定的屬性。
session="true false
定義這個JSP程序是否要用到session。默認值是"true",session的功能是用來保留當多個JSP程序互動時所要同時參考到的對象;session對象的類類型是HttpSession。如果沒有改變默認值的話,就可以直接在JSP程序內(nèi)使用它,用它所提供的方法putValue()與getValueI()方法來存取所保留對象。
buffer="nonelsizekb
定義這個JSP程序所需要的緩沖區(qū)大小,單位是kb。默認值大小根據(jù)jsp1.1的規(guī)格說明是不小于8kb。
autoFlush="true false"
定義這個JSP程序所用的buffer滿時,是否自動將所產(chǎn)生內(nèi)容輸出到客戶端,默認值是"true"。如果改變它的值為"false",則當buffer內(nèi)容超出其所設(shè)定的值大小時,會產(chǎn)生overflow的exception。要特別注意的是當buffer設(shè)為"none",autoFlush不能不設(shè)成"false",否則會產(chǎn)生JSP程序轉(zhuǎn)換時期的錯誤。
isThreadSafe=""true false"
定義JSP Engine 執(zhí)行JSP程序的方式,默認值是"true",這是告訴JSP Engine以多線程的方式同時服務(wù)多個來自客戶端的請求,也就是說,這些請求會被JSP Engine以交互輪流的方式來執(zhí)行完成。
如果isThreadSafe設(shè)成"false",則JSP Engine會為所產(chǎn)生出來的JAVA類實作一個SingleThreadModel界面,只要類實作了這個界面,就會以單線程的方式來服務(wù)多個來自客戶端的請求,意即在服務(wù)完一個客戶端的請求后才去服務(wù)另一個。
info="infoText
你可以用這個屬性來描述有關(guān)JSP程序的說明文字,以Tomcat3.0的默認值是"Jasper JSP 1.1 Engine“,你可以用getServletInfo()來取得info的字符串。
errorPage="errorPageURL"
這屬性是用來設(shè)定當JSP程序在處理客戶端請求時,如果發(fā)生例外所要傳送的網(wǎng)頁?梢栽贘SP程序中可能發(fā)生例外的地方丟出一個繼承自Throwable的例外對象。如果發(fā)生例外,JSP就會執(zhí)行request.setAttribute,將你所丟出的例外對象傳送到錯誤信息網(wǎng)頁,然后傳回你所指定的錯誤信息網(wǎng)頁內(nèi)容。如果沒有設(shè)定的話,就以默認網(wǎng)頁來傳回錯誤信息。
isErrorPage="true false"
這屬性是用來設(shè)定這個JSP程序是否作為傳回錯誤信息的網(wǎng)頁,默認值是"false"。
contentType="contentTypeInfo"
這屬性是用來設(shè)定傳回網(wǎng)頁的文件格式與編碼方式,默認值是"text/html;charset=8859_1"。
include編譯指令
include編譯指令是用來將所指定的JSP程序或網(wǎng)頁內(nèi)容嵌入JSP程序內(nèi)。
語法
<%@ include file="fileURLSpec" %>
fileURLSpec必須是本地端的文件路徑加上文件名稱。
taglib編譯指令
taglib編譯指令是用來擴展JSP程序的動作指令。
語法
<%@ tablib url="tagLibrary" prefix="prefix" %>
說明
url 屬性用來執(zhí)行標簽定義庫的存放地址。
prefix 屬性用來定義標簽的前置字符串,以與默認的標簽做分別。
jsp:useBean
語法
1. <jsp:useBean id="name" scope="page request session application" typeSpec />
和
2. <jsp:useBean id="name" scope="page request session application" typeSpec >
body
</jsp:useBean>
這個動作指令可以包含或不包含body,不包含的形式如上面的第一項,直接以"/>"結(jié)束整個指令。包含body的形式如上面的第二項,body的內(nèi)容可以是合法的jsp程序代碼或<jsp:setProperty.../>標簽,也可以是一般的html碼,最后則以</jsp:useBean>結(jié)束整個指令。要注意的是body只有在Bean被建立的時候才會被執(zhí)行。
jsp:setProperty動作指令
語法
<jsp:setProperty name="BeanName" PropertyExpr />
PropertyExpr ::= property="*"
property="PropertyName"
property="PropertyName" value=PropertyValue"
property="PropertyName" name=Propertyname"
說明
name 屬性用來指定Bean的名稱,這個Bean必須已經(jīng)存在。
PropertyExpr 可以是上述四個組合中的一個。
<jsp:setProperty>用來搭配<jsp:useBean>一起使用,指定Bean的屬性值。
jsp:getProperty動作指令
語法
1. <jsp:getProperty name="BeanName" Property="PropertyName" />
<jsp:getProperty>用來搭配<jsp:Bean>一起使用,指定Bean的屬性值。
說明
name 屬性用來指定Bean的名稱,這個Bean必須已經(jīng)存在。
Property 屬性用來指定要讀取的屬性名稱,PropertyName必須是Bean的屬性值。
jsp:include動作指令
語法
<jsp:include page="URLSpec" flush="true" />
和
<jsp:include page="URLSpec" flush="true" >
{ <jsp:pram name="ParameterName" value="ParameterValue" /> }*
</jsp:include>
<jsp:include>可以動態(tài)地將一個Html或JSP程序文件嵌入于JSP程序中。
說明
page 屬性用來指定要嵌入的Html或JSP程序文件。
flush 是指是否要將結(jié)果立即打印出來,它的值必須設(shè)定為true,因為false在JSP1.1中是無效的設(shè)定值。
jsp:forward動作指令
語法
<jsp:forward page="URLSpec" />
和
<jsp:forward page="URLSpec" flush="true" >
{ <jsp:param name="ParameterName" value="ParameterValue" /> }*
</jsp:forward>
說明
<jsp:forward>可以將一個JSP的內(nèi)容送到page所指定JSP程序或是servlet類中做處理然后直接將結(jié)果傳回客戶端。
jsp:param動作指令
語法
<jsp:param name="parameterName" value="parameterValue"/ >
說明
jsp:param 用來搭配jsp:forward,jsp:include和jsp:plugin一起使用,可用來傳遞參數(shù)。
jsp:plugin動作指令
語法
<jsp:plugin type="bean applet"
code="JavaBean Name Applet class Name"
codebase="ClassPath"
{align="alignment"}
{archive="archiveList"}
{height="height"}
{width="width"}
{hspace="hspace"}
{vspace="vspace"}
{jreversion="jreversion"}
{naem="componentName"}
{nspluginurl="url"}
{iepluginurl="url"}
{
<jsp:params>
{<jsp:param name="parameterName" value="parameterValue" />}+
</jsp:params>
}
{
<jsp:fallback> arbitrary_text </jsp:fallback>
}
</jsp:plugin>
說明
jsp:plugin 可動態(tài)下載服務(wù)器端的Java Bean或Applet到客戶端的瀏覽器上執(zhí)行,也就是直接在瀏覽器上執(zhí)行JAVA的程序,和Html嵌入Applet的方式相似。