黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

JSP教程
JSP高級(jí)教程

JSP useBean的標(biāo)準(zhǔn)動(dòng)作

<jsp:useBean>動(dòng)作標(biāo)記用于在 JSP 頁面中創(chuàng)建 bean 實(shí)例,并且通過設(shè)置相關(guān)屬性,可以將該實(shí)例存儲(chǔ)到指定的范圍。如果在指定的范圍已經(jīng)存在該 bean 實(shí)例,那么將使用這個(gè)實(shí)例,而不會(huì)重新創(chuàng)建。

實(shí)際工程中,常用 JavaBean 做組件開發(fā),而在 JSP 頁面中,只需要聲明并使用這個(gè)組件,較大程度地實(shí)現(xiàn)了靜態(tài)內(nèi)容和動(dòng)態(tài)內(nèi)容的分離。

聲明 JavaBean 的語法格式如下:

<jsp:useBean id="變量名" scope="page|request|session|application"
{
type="數(shù)據(jù)類型"
|class="package.className"
|class="package.className" type="數(shù)據(jù)類型"
|beanName="package.className" type="數(shù)據(jù)類型"
}
/>
<jsp:setProperty name="變量名" property="*" />

也可以在標(biāo)記體內(nèi)嵌入子標(biāo)記,例如:

<jsp:useBean id="變量名" scope="page|request|session|application"...>
<jsp:setProperty name="變量名" property="*" />
</jsp:useBean>

以上兩種使用方法是有嚴(yán)格區(qū)別的,當(dāng)在頁面中使用<jsp:useBean>標(biāo)記創(chuàng)建一個(gè) bean 時(shí),對(duì)于第二種使用格式,如果該 bean 是第一次被實(shí)例化,那么標(biāo)記體內(nèi)的內(nèi)容會(huì)被執(zhí)行;如果已經(jīng)存在指定的 bean 實(shí)例,則標(biāo)記體內(nèi)的內(nèi)容就不再被執(zhí)行。

對(duì)于第一種使用格式,無論在指定的范圍內(nèi)是否己經(jīng)存在指定的 bean 實(shí)例, <jsp:useBean>標(biāo)記后面的內(nèi)容都會(huì)被執(zhí)行。

下面對(duì)<jsp:useBean>動(dòng)作中各屬性的用法進(jìn)行詳細(xì)介紹。

1、id 屬性:在 JSP 中給這個(gè) bean 實(shí)例取的名字,即指定一個(gè)變量,只要在它的有效范圍內(nèi),均可使用這個(gè)名稱來調(diào)用它。該變量必須符合 Java 中變量的命名規(guī)則。

2、scope 屬性:設(shè)置所創(chuàng)建的 bean 實(shí)例的有效范圍,取值有 4 種:page、request、session、application。默認(rèn)情況下取值為 page。

• 值為 page:在當(dāng)前 JSP 頁面及當(dāng)前頁面以 include 指令靜態(tài)包含的頁面中有效。

• 值為 request:在當(dāng)前的客戶請(qǐng)求范圍內(nèi)有效。在請(qǐng)求被轉(zhuǎn)發(fā)至的目標(biāo)頁面中,如果要使用原貢面中創(chuàng)建的 bean 實(shí)例,通過 request 對(duì)象的 getAttribute("id屬性值") 方法來獲取。請(qǐng)求的生命周期是從客戶端向服務(wù)器發(fā)出請(qǐng)求開始,到服務(wù)器響應(yīng)這個(gè)請(qǐng)求給用戶后結(jié)束。所以請(qǐng)求結(jié)束后,存儲(chǔ)在其中的 bean 實(shí)例也就失效了。

• 值為 session:對(duì)當(dāng)前 HttpSession 內(nèi)的所有頁面都有效。當(dāng)用戶訪問 Web 應(yīng)用程序時(shí),服務(wù)器為用戶創(chuàng)建一個(gè) session 對(duì)象,并通過 session 的 ID 值來區(qū)分不同的用戶。針對(duì)某一個(gè)用戶而言,對(duì)象可被多個(gè)頁面共享。通過 session 對(duì)象的 getAttribute(“id屬性值”) 方法獲取存儲(chǔ)在 session 中的 bean 實(shí)例。

 • 值為application:所有用戶共享這個(gè)bean實(shí)例。有效范圍從服務(wù)器啟動(dòng)開始,到服 務(wù)器關(guān)閉結(jié)束。application對(duì)象是在服務(wù)器啟動(dòng)時(shí)創(chuàng)建的,可以被多個(gè)用戶共享。所以,訪 問application對(duì)象的所有用戶共享存儲(chǔ)于該對(duì)象中的bean實(shí)例。使用application對(duì)象的 getAttribute(“id屬性值”)方法獲取存在于application對(duì)象中的bean實(shí)例。

Scope屬性之所以很重要,是因?yàn)橹挥性诓淮嬖诰哂邢嗤琲d和scope的對(duì)象時(shí), <8卩:!^86&11>才會(huì)實(shí)例化新的對(duì)象;如果已有id和scope都相同的對(duì)象,則直接使用已有的 對(duì)象,此時(shí),jspruseBean開始標(biāo)記和結(jié)束標(biāo)記之間的任何內(nèi)容都將被忽略。

3、 type="數(shù)據(jù)類型":設(shè)置由 id 屬性指定的 bean 實(shí)例的類型。該屬性可指定要?jiǎng)?chuàng)建實(shí)例的類的本身、類的父類或者一個(gè)接口。

通過 type 屬性設(shè)置 bean 實(shí)例類型的格式如下:

<jsp:useBean id="stu" type="com.Bean.StudentInfo" scope="session" />

如果在 session 范圍內(nèi),名為 stu 的實(shí)例已經(jīng)存在,則將該實(shí)例轉(zhuǎn)換為 type 屬性指定的 StudentInfo 類型(此時(shí)的類型轉(zhuǎn)換必須是合法的)并賦值給 id 屬性指定的變量;若指定的實(shí)例不存在,將會(huì)拋出“bean stu not found within scope”異常。

4、class="package.className":該屬性指定了一個(gè)完整的類名,其中,package 表示類包的名字,className 表示類的 class 文件名稱。

通過 class 屬性指定的類不能是抽象的,它必須具有公共的、沒有參數(shù)的構(gòu)造方法。在沒有設(shè)置 type 屬性時(shí),必須設(shè)置 class 屬性。例如,通過 class 屬性定位一個(gè)類的格式如下:

<jsp:useBean id="stu" class="com.Bean.StudentInfo" scope="session" />

程序首先會(huì)在 session 范圍中查找是否存在名為 stu 的 StudentInfo 類的實(shí)例,如果存在,就會(huì)通過 new 操作符實(shí)例化 StudentInfo 類來獲取一個(gè)實(shí)例,并以 stu 為實(shí)例名稱存儲(chǔ)在 session 范圍內(nèi)。

5、class="package.className" type="數(shù)據(jù)類型":class 屬性與 type 屬性可以指定同一個(gè)類,這兩個(gè)屬性一起使用時(shí)的格式舉例說明如下:

<jsp:useBean id="stu" class="com.Bean.StudentInfo" type="com.Bean.StudentBase" scope="session" />

6、beanName="package.className" type="數(shù)據(jù)類型":beanName 屬性與 type 屬性可以指定同一個(gè)類,這兩個(gè)屬性一起使用時(shí)的格式舉例說明如下:

<jsp:useBean id="stu" beanName="com.Bean.StudentInfo" type="com.Bean.StudentBase" />

假設(shè) StudentBase 類為 StudentInfo 類的父類。執(zhí)行到該標(biāo)記時(shí),首先,程序會(huì)創(chuàng)建一個(gè)以 id 屬性值為名稱的變量 stu,類型為 type 屬性的值,并初始化為 null;然后在 session 范圍內(nèi)查找名為 stu 的 bean 實(shí)例。

如果實(shí)例存在,則將其轉(zhuǎn)換為 type 屬性指定的 StudentBase 類型(此時(shí)的類型轉(zhuǎn)換必須是合法的)并賦值給變量 stu;如果實(shí)例不存在,則將通過 instantiate() 方法,從 StudentInfo 類中實(shí)例化一個(gè)類,并將其轉(zhuǎn)換成 StudentBase 類型后賦值給變量 stu,最后將變量 stu 存儲(chǔ)在 session 范圍內(nèi)。

一般情況下,使用如下格式來應(yīng)用 標(biāo)記:

<jsp:useBean id="變量名" class="package.className" />

如果多個(gè)頁面中共享這個(gè) bean 實(shí)例,可將 scope 屬性設(shè)置為 session。

使用<jsp:useBean>標(biāo)記在頁面中實(shí)例化 bean 實(shí)例后,設(shè)置或修改該 bean 中的屬性就可以用<jsp:setProperty>完成,讀取該 bean 中指定的屬性要用<jsp:getProperty>來完成,這兩個(gè)標(biāo)記在下面小節(jié)中將陸續(xù)介紹。

當(dāng)然,讀取和設(shè)置 bean 中的屬性還有另一種方式,就是在腳本程序中利用 id 屬性所命名的對(duì)象變量,通過調(diào)用該對(duì)象的方法顯式地讀取或者修改其屬性。

全部教程
主站蜘蛛池模板: 天天干干干 | 日韩精品中文字幕一区三区 | 777色狠狠一区二区三区香蕉 | 人人爱人人射 | 免费一级特黄欧美大片久久网 | 午夜特级毛片 | 日本人与物videos另类 | 一级毛片aaaaaa视频免费看 | 看看的在线视频国产 | 国产精品高清一区二区三区 | 一级片黄色a | 欧美日韩一区二区三区视频播 | 视频一区二区在线 | 国产精品成人h视频 | 欧美精品国产一区二区 | 欧美国产成人精品一区二区三区 | 香蕉乱码成人久久天堂爱免费 | 在线色 | 能看的黄色网址 | 黄色影片在线看 | 亚洲欧美另类在线视频 | 免费特黄 | 久久国产高清视频 | 久久成人免费大片 | 黄色三级国产 | 1717she永久精品免费 | 免费簧片在线观看 | 男女啪啪猛烈到合不拢腿小说网 | 成人午夜视频网站 | 一二三四视频社区5在线高清视频 | 黄色毛片大全 | 97人人揉人人捏人人添 | 天天好比| 黄网免费看 | 人人上人人干 | 翁熄性放纵苏玥完整小说 | 717影院理伦午夜论八戒 | 国产全黄三级国产全黄三级书 | 国产精品1区2区3区在线播放 | 欧美线在线精品观看视频 | 色综合日韩 |