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