資源描述:
《輕松學(xué)Java Web開發(fā)之JavaBean基礎(chǔ)x》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第4章JavaBean基礎(chǔ)JavaBean是一種Java語(yǔ)言寫成的可重用組件。JSP可以方便地支持JavaBean組件的使用。用戶將常用的功能寫入JavaBean。當(dāng)用戶需要使用這些功能,直接在JSP頁(yè)面調(diào)用對(duì)應(yīng)的JavaBean即可。實(shí)現(xiàn)了一次編寫,任何地方調(diào)用。本章將詳細(xì)講解如何編寫JavaBean,以及JSP如何調(diào)用JavaBean,最后我們會(huì)為大家展示JavaBean在Web領(lǐng)域的具體應(yīng)用。4.1創(chuàng)建JavaBeanSun公司對(duì)JavaBean的定義為:可以重復(fù)利用的軟件組件,它在遵循JavaBean技術(shù)規(guī)范的基礎(chǔ)上提供特定的功能,這些功能模塊可以組合成
2、更大規(guī)模的應(yīng)用系統(tǒng)。JavaBean其實(shí)本質(zhì)上就是一個(gè)封裝了一系列屬性和方法的類。其中屬性和方法封裝需要遵循各特定的規(guī)范。本節(jié)將講解如何創(chuàng)建JavaBean。4.1.1JavaBean類首先我們要?jiǎng)?chuàng)建一個(gè)JavaBean類。JavaBean類創(chuàng)建的語(yǔ)法格式如圖4.1所示。4.1.1JavaBean類一個(gè)標(biāo)準(zhǔn)的JavaBean類有以下幾個(gè)特性:它是一個(gè)公開的(public)類。它有一個(gè)默認(rèn)的構(gòu)造方法,也就是不帶參數(shù)的構(gòu)造方法(在實(shí)例化JavaBean對(duì)象時(shí),需要調(diào)用默認(rèn)的構(gòu)造方法)。他提供getXXX()和setXXX()方法來(lái)讓外部程序設(shè)置和獲取JavaBean
3、的屬性。一般來(lái)說(shuō),符合上述條件的類,我們都可以將其看做JavaBean類。明白了如何創(chuàng)建JavaBean類后,我們?cè)賮?lái)看如何創(chuàng)建JavaBean的屬性和方法。4.1.2JavaBean屬性和方法JavaBean的屬性用于表示其內(nèi)部狀態(tài)。在JavaWeb開發(fā)中,其屬性主要用來(lái)存儲(chǔ)中間數(shù)據(jù)。JavaBean屬性定義如圖4.2所示。對(duì)于我們?cè)贘avaBean中生命的屬性,在類中必須定義用來(lái)獲取或更改屬性值的兩個(gè)方法——getXXX()和setXXX()方法。JSP文件就運(yùn)用JavaBean方法在需要時(shí)從JavaBean中把這些屬性取出,然后在客戶端將其顯示出來(lái)。根據(jù)J
4、avaBean類特定的接口格式要求我們可以將其屬性分為簡(jiǎn)單方法和索引方法。1.簡(jiǎn)單方法簡(jiǎn)單的方法是指一個(gè)擁有g(shù)et或者set方法的方法。我們?cè)贘avaWeb開發(fā)中使用的JavaBean屬性一般都是讀寫類型,必須采用標(biāo)識(shí)命名約定來(lái)定義getXXX()和setXXX()方法。對(duì)于布爾類型的值我們還可以采用is()屬性來(lái)獲取屬性值。簡(jiǎn)單方法的使用語(yǔ)法如圖4.1所示。2.索引方法索引方法是指一個(gè)有g(shù)et/set方法的數(shù)組方法。get和set方法的作用同簡(jiǎn)單類型的方法一樣,即用來(lái)獲取和設(shè)置屬性值。但是索引方法不只有一個(gè)get或者set方法,可能有兩個(gè)get方法,但是參數(shù)不
5、一樣。索引方法的語(yǔ)法格式如圖4.3所示。4.2JSP與JavaBean交互的動(dòng)作指令在JSP中專門提供了3個(gè)動(dòng)作指令來(lái)與JavaBean進(jìn)行交互,分別為動(dòng)作指令、動(dòng)作指令和動(dòng)作指令。4.2.1動(dòng)作指令動(dòng)作指令用來(lái)在JSP頁(yè)面中獲取或創(chuàng)建一個(gè)JavaBean組件的實(shí)例并指定它的名字和作用范圍。動(dòng)作指令的語(yǔ)法形式如圖4.6所示。4.2.1動(dòng)作指令該動(dòng)作指令表示的含義是:在
6、頁(yè)面中引用一個(gè)已經(jīng)存在或創(chuàng)建一個(gè)新的由class屬性指定的Java類的實(shí)例,然后將其綁定到名字由id屬性給出的變量上,并且該變量只在scope屬性所指定的范圍內(nèi)有效。對(duì)于第二種形式,則是只用當(dāng)?shù)谝淮螌?shí)例化JavaBean時(shí),才執(zhí)行body(JSP語(yǔ)句)部分,如果是獲取現(xiàn)有的JavaBean實(shí)例,則不執(zhí)行body部分。然后我們看一下這幾個(gè)屬性的作用,如表4.1所示。屬性名屬性作用id屬性在定義范圍內(nèi)確認(rèn)JavaBean實(shí)例變量,也可以用該變量名引用JavaBean實(shí)例class屬性引用的JavaBean的完整類名。JSP2.0規(guī)范要求JavaBean必須要有包名s
7、cope屬性JavaBean存在范圍及id變量名有效范圍。翻飛由小到大依次為:page、request、session和application。默認(rèn)為page4.2.2動(dòng)作指令在JSP頁(yè)面中我們可以通過(guò)和動(dòng)作指令來(lái)代替一般的get和set方法。動(dòng)作指令用來(lái)獲取JavaBean中指定的屬性值并將其轉(zhuǎn)化為一個(gè)字符串,然后將其輸出到頁(yè)面中。即其作用相當(dāng)于前面提到的getXXX()方法。動(dòng)作指令的語(yǔ)法格
8、式如圖4.10所示。值得