腳本 JSP腳本就是用page指令language屬性指定的腳本語(yǔ)言編寫(xiě)的代碼塊,需要用JSP完成的功 能主要在此實(shí)現(xiàn)。目前用的基本是Java語(yǔ)言。 代碼塊里必須完全符合Java語(yǔ)法,但可以配合用HTML文本。其實(shí)不論是什么,都會(huì)被轉(zhuǎn)換 為Servlet,在Servlet中它們是一樣的。
如:先輸出5個(gè)空行,再輸出“hello”
正確的:<% for(int i=0;i<5;i++)%>
<br>
<%;%>
hello
<br>錯(cuò)誤的:(一行br;一行hello)===============
<% for(int i=0;i<5;i++)%>
<br>
hello
錯(cuò)誤的等價(jià)于:<% for(int i=0;i<5;i++){%>
<br>
hello
<%}%>
動(dòng)作(<%jsp%>) jsp提供的動(dòng)作指令有:include、forward、useBean、getProperty、setProperty
include 動(dòng)作
jsp向當(dāng)前頁(yè)面加入另一文件的方法。
<jsp:include page=”relativefileURL” flush=”true”/>
forward動(dòng)作
把當(dāng)前頁(yè)面重導(dǎo)到另一頁(yè)面上,客戶(hù)端看到的地址是A頁(yè)面的地址,
而實(shí)際內(nèi)容確是B頁(yè)面的內(nèi)容。
<jsp:forward page=”relativefileURL| <%=expression%>}"/>
如:
<body>
here is aa.
<jsp:forward page=”aa.jsp” />
here is bb.
</body>
注意:在使用forward之前,不能有任何內(nèi)容已經(jīng)輸出到客戶(hù)端,否則會(huì)發(fā)生例外。
useBean動(dòng)作
此動(dòng)作用來(lái)生成一個(gè)bean組件,并設(shè)定它的id號(hào)及使用范圍
<jsp:useBean id=”beanName” scope="page|request|session| application|"class=”package.class” type="package.class" beanName="{package.class|<%=expression%>} type="package.class "">action for bean </jsp:useBean>
id=”beanName”:定義生成bean組件的名字,不能重名且scope的值也最好一樣, 否則JSP引擎將認(rèn)定最先被創(chuàng)建的那個(gè)。
scope=”page|request|session|application”:定義bean的活動(dòng)范圍,bean 只有在它定義的范圍里才能使用,
在它的活動(dòng)范圍外將無(wú)法訪問(wèn)到它。JSP為它設(shè)定的范圍有:
page: bean的缺省使用范圍
request:作用于任何相同請(qǐng)求的JSP文件中,直到頁(yè)面執(zhí)行完畢向客戶(hù)端發(fā)回響應(yīng) 或在此這之前
已通過(guò)某種方式(如重定向、鏈接等方式)轉(zhuǎn)到另一個(gè)文件為止。還可通過(guò)使用 Request對(duì)象訪問(wèn)
bean,如request.getAttribute(beanName)
session:作用于整個(gè)session的生存周期內(nèi),在session的生存周期內(nèi),對(duì)此bean 屬性的任何改動(dòng),
都會(huì)影響到在此session內(nèi)的另一page、另一request里對(duì)此bean的調(diào)用。但必 須在創(chuàng)建此bean的文件
里事先用page指令指定了session=true。
application:作用于整個(gè)application的生存周期內(nèi),在application周期內(nèi), 對(duì)此bean屬性的任何改動(dòng),
都會(huì)影響到此application內(nèi)另一page、另一request以及另一session里對(duì)此 bean的調(diào)用。
class=”package.class”:用class屬性指下的類(lèi)示例一個(gè)bean,其中package 名必須是類(lèi)里用關(guān)鍵字package指定的。
type=”package.class”
class=”package.class” type=”package.class”
beanName=”{package.class|<%=expression%>}” type=”package.class”
如:tt.jsp
<jsp:useBean id=”student” scope=”page” class=”mime.student” />
<%=student.getName()%><br>
<% student.setName(“wll”); %>
student.java
package mine;
public class student{
long classno;
String name;
int age;
Boolean sex;
public student(){
classno=12345;
name=”aaaa”;
age=21;
sex=true;
}
public long getClassno(){
return classno;
}
public void setClassno(long no){
this.classno=no;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public boolean getSex(){
return sex;
}
public void setSex(Boolean sex){
this.sex=sex;
}
} 注:
scope=”page”時(shí),運(yùn)行test.jsp文件,name的初始值為”aaaa”。雖然在jsp 文件中又重設(shè)為“wll”,
但刷新后仍為“aaaa”
scope=”session”時(shí),運(yùn)行test.jsp文件,name的初始值為”aaaa”。雖然在jsp 文件中又重設(shè)為“wll”,
但刷新后仍為“wll”,只要不關(guān)閉此窗口,任何刷新或打開(kāi)一個(gè)新窗口,都輸出 “wll”。直到關(guān)閉所有窗口,
再運(yùn)行test.jsp文件,輸出才會(huì)為初始值”aaaa”。
scope=”application”時(shí),運(yùn)行test.jsp文件,name的初始值為”aaaa”。 雖然在jsp文件中又重設(shè)為“wll”
,但刷新后仍為“wll”,只要不關(guān)閉此窗口,任何刷新或打開(kāi)一個(gè)新窗口,都輸出 “wll”。即使關(guān)閉所有窗口
,再運(yùn)行test.jsp文件,輸出仍為 “wll”。除非關(guān)閉服務(wù)后又重啟,再運(yùn)行 test.jsp文件,name的輸出為初始值”aaaa”。
scope=”request”時(shí),新建一文件test1.jsp內(nèi)容與test.jsp一樣。先在瀏覽器 中運(yùn)行test.jsp文件,輸出name的
值為初始值”aaaa”。再在在瀏覽器中運(yùn)行test1.jsp文件,此時(shí)輸出為“wll”, 因?yàn)樗鼈兯闶窍嗤膔equest。
getProperty動(dòng)作
作用:用來(lái)返回一個(gè)已被創(chuàng)建的bean組件的屬性值:
<jsp:getProperty name=”beanId” property=”propertyName” />
name:對(duì)應(yīng)著用useBean創(chuàng)建bean組件時(shí)id的值
property:指明要得到哪個(gè)屬性的值
如:得到前例中student組件的屬性值:
<jsp:getProperty name=”student” property=”classno” />等價(jià): <%=student.classno %>
<jsp:getProperty name=”student” property=”name” />
<jsp:getProperty name=”student” property=”age” />
輸出結(jié)果為:
12345 aaaa 21 setProperty 動(dòng)作
作用:用來(lái)設(shè)定一個(gè)已被創(chuàng)建的bean組件的屬性值:
<jsp:setProperty name=”beanId” property=”propertyName” value=”propertyValue”/>
name:對(duì)應(yīng)著用useBean創(chuàng)建bean組件時(shí)id的值
property:指明要想設(shè)定屬性值的屬性名
value:為設(shè)定的屬性值
如:前例中student組件,在setProperty中設(shè)定的屬性
<jsp:setProperty name=”student” property=”classno” value=”56789”/>
<jsp:setProperty name=”student” property=”name” value=”bbbb” />
<jsp:setProperty name=”student” property=”age” value=”33” /> 等價(jià):<% student.age=33;%>
輸出結(jié)果為:
56789 bbbb 33
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁(yè) JSP-----循序漸進(jìn)教程1 下一頁(yè) JSP-----循序漸進(jìn)教程 3
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|