版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 JSP與JavaBean,本章主要內(nèi)容:JavaBean組件的開(kāi)發(fā)在JSP中使用JavaBeanJavaBean的范圍通過(guò)JavaBean訪問(wèn)數(shù)據(jù)庫(kù),第7章 JSP與JavaBean,7.1 JavaBean介紹7.2 編寫(xiě)JavaBean 7.3 JavaBean的范圍7.4 通過(guò)JavaBean訪問(wèn)數(shù)據(jù)庫(kù),7.1 JavaBean介紹,7.1.1 什么是JavaBean7.1.2 JavaBean的組成,,7
2、.1.1 什么是JavaBean,JavaBean是一段特殊的Java類(lèi),其最初的目的是為了將可以重復(fù)使用的軟件代碼打包,特別是用與幫助廠家開(kāi)發(fā)在綜合開(kāi)發(fā)環(huán)境(IDE)下使用的Java軟件部件,如今,JavaBean部件框架已經(jīng)擴(kuò)展為企業(yè)版的 Bean(EJB)。 JSP和JavaBean結(jié)合使用是目前比較流行的Web開(kāi)發(fā)技術(shù).,JavaBean一般分為可視化組件和非可視化組件兩種。通常一個(gè)標(biāo)準(zhǔn)的JavaBean具有以下特性。易于維
3、護(hù)、使用、編寫(xiě)??蓪?shí)現(xiàn)代碼的重用性??梢浦残詮?qiáng),但僅限于Java工作平臺(tái)。便于傳輸,不限于本地還是網(wǎng)絡(luò)??梢砸云渌考哪J竭M(jìn)行工作。,7.1.1 什么是JavaBean,,7.1.2 JavaBean的組成,一個(gè)JavaBean由3部分組成1.屬性(Properties)2.方法(Method)3.事件(Event),1.屬性(Properties)JavaBean提供了高層次的屬性概念,屬性在JavaBean中不只是
4、傳統(tǒng)的面向?qū)ο蟮母拍罾锏膶傩?,它同時(shí)還得到了屬性讀取和屬性寫(xiě)入的API的支持。屬性值可以通過(guò)調(diào)用適當(dāng)?shù)腂ean方法進(jìn)行。例如Bean有一個(gè)名字屬性,這個(gè)屬性的值可能需要調(diào)用String getName()方法讀取,而寫(xiě)入屬性值可能要需要調(diào)用void setName(String str)的方法。,7.1.2 JavaBean的組成,2.方法(Method)JavaBean中的方法就是通常的Java方法,它可以從其他組件或在腳本環(huán)境中調(diào)
5、用。默認(rèn)情況下,所有Bean的公有方法都可以被外部調(diào)用,但Bean一般只會(huì)引出其公有方法的一個(gè)子集。由于JavaBean本身是Java對(duì)象,調(diào)用這個(gè)對(duì)象的方法是與其交互作用的唯一途徑。JavaBean嚴(yán)格遵守面向?qū)ο蟮念?lèi)設(shè)計(jì)邏輯,不讓外部世界訪問(wèn)其任何字段(沒(méi)有public字段)。這樣,方法調(diào)用是接觸Bean的唯一途徑。,7.1.2 JavaBean的組成,3.事件(Event)Bean與其他軟件組件交流信息的主要方式是發(fā)送和接受事
6、件??梢詫ean的事件支持功能看作是集成電路中的輸入輸出引腳:工程師將引腳連接在一起組成系統(tǒng),讓組件進(jìn)行通訊。有些引腳用于輸入,有些引腳用于輸出,相當(dāng)于事件模型中的發(fā)送事件和接收事件。事件為JavaBean組件提供了一種發(fā)送通知給其他組件的方法。在AWT事件模型中,一個(gè)事件源可以注冊(cè)事件監(jiān)聽(tīng)器對(duì)象。當(dāng)事件源檢測(cè)到發(fā)生了某種事件時(shí),它將調(diào)用事件監(jiān)聽(tīng)器對(duì)象中的一個(gè)適當(dāng)?shù)氖录幚矸椒▉?lái)處理這個(gè)事件。,7.1.2 JavaBean的組成,7
7、.2 編寫(xiě)JavaBean,7.2.1 開(kāi)發(fā)JavaBean組件7.2.2 在頁(yè)面中使用JavaBean組件,,7.2.1 開(kāi)發(fā)JavaBean組件,JavaBean是一種組件技術(shù),可以將內(nèi)部的動(dòng)作(如事務(wù)邏輯、數(shù)據(jù)庫(kù)操作等)封裝起來(lái),用戶(hù)看不到它如何運(yùn)行,它只提供最小限度的屬性接口供JSP程序使用,實(shí)現(xiàn)了業(yè)務(wù)邏輯和前臺(tái)程序的分離。操作的過(guò)程往往是先開(kāi)發(fā)需要的JavaBean,再在適當(dāng)?shù)臅r(shí)候進(jìn)行調(diào)用。JavaBean作為一個(gè)特殊的類(lèi)
8、,具有自己獨(dú)有的特性,為了能讓使用這個(gè)Bean的應(yīng)用程序構(gòu)建工具(比如JSP引擎)知道這個(gè)Bean的屬性和方法,只需在類(lèi)的方法命名上遵守以下規(guī)則:JavaBean類(lèi)必須有一個(gè)沒(méi)有參數(shù)的構(gòu)造函數(shù)。JavaBean類(lèi)所有的屬性最好定義為私有的(private)。Java類(lèi)中方法的訪問(wèn)屬性都必須是public的。JavaBean類(lèi)中定義函數(shù)setXxx() 和getXxx()來(lái)對(duì)屬性進(jìn)行操作。其中Xxx是首字母大寫(xiě)的私有變量名稱(chēng)。對(duì)
9、于boolean類(lèi)型的成員變量,即布爾邏輯類(lèi)型的屬性,允許使用“is”代替上面的“get”和“set”。,7.2.2 在頁(yè)面中使用JavaBean組件,JSP自身沒(méi)有實(shí)現(xiàn)HTML代碼與Java代碼的完全分離,網(wǎng)頁(yè)設(shè)計(jì)人員和Java編程人員需要操作同一個(gè)JSP文件,不易維護(hù)和管理。在JSP頁(yè)面中是通過(guò)操作指令:、和來(lái)應(yīng)用JavaBean的,它們分別用于創(chuàng)建和查找JavaBean的實(shí)例對(duì)象、設(shè)置JavaBean對(duì)象的屬性及讀取JavaBe
10、an對(duì)象的屬性。,1.指令指令用來(lái)定義生成和使用Bean的環(huán)境,即如果使用,就可以定義Bean的名稱(chēng)、類(lèi)型以及使用期限等內(nèi)容。在JSP頁(yè)面中,使用JavaBean前首先要聲明JavaBean。JavaBean的聲明通過(guò)動(dòng)作來(lái)實(shí)現(xiàn),其語(yǔ)法格式如下:,7.2.2 在頁(yè)面中使用JavaBean組件,2.指令是設(shè)定通過(guò)定義的Bean對(duì)象屬性的標(biāo)記。的語(yǔ)法格式有以下4種。(1)字符串常量:(2)請(qǐng)求參數(shù):(3)匹配Bean中指定
11、的屬性:(4)表達(dá)式:"/>,7.2.2 在頁(yè)面中使用JavaBean組件,3.指令用于從一個(gè)JavaBean中獲取某個(gè)屬性的值,無(wú)論原來(lái)這個(gè)屬性是什么類(lèi)型的,都將被轉(zhuǎn)換為一個(gè)String類(lèi)型的值。其語(yǔ)法格式如下:,7.2.2 在頁(yè)面中使用JavaBean組件,7.3 JavaBean的范圍,7.3.1 page范圍7.3.2 request范圍7.3.3 session范圍7.3.4 applicati
12、on范圍,7.3.1 page范圍,page范圍的生命周期和作用范圍在4種類(lèi)型的JavaBean 組件中是最小的。當(dāng)JavaBean的Scope 屬性被設(shè)為page時(shí),表示該JavaBean的生命周期只在一個(gè)頁(yè)面內(nèi),即為JSP 程序的運(yùn)行周期。當(dāng)JSP 程序運(yùn)行結(jié)束,該JavaBean 組件的生命周期也就結(jié)束了。它無(wú)法在別的JSP程序中起作用,對(duì)應(yīng)于不同的客戶(hù)端請(qǐng)求服務(wù)器都會(huì)創(chuàng)建新的JavaBean 組件對(duì)象,而且一旦客戶(hù)端的請(qǐng)求執(zhí)行完
13、畢,該JavaBean 對(duì)象會(huì)馬上注銷(xiāo),無(wú)法供別的客戶(hù)端請(qǐng)求使用。,7.3.2 request范圍,request范圍的生命周期和作用范圍與JSP 的Request 對(duì)象一樣,當(dāng)JavaBean的Scope屬性值被設(shè)為request時(shí),表示JavaBean在整個(gè)請(qǐng)求的范圍內(nèi)都有效,而不僅僅在一個(gè)頁(yè)面內(nèi)有效。當(dāng)一個(gè)JSP 程序使用操作指令定向到另外一個(gè)JSP 頁(yè)面或使用操作指令導(dǎo)入另外的JSP頁(yè)面時(shí),第一個(gè)JSP頁(yè)面會(huì)把Request
14、對(duì)象傳送到下一個(gè)JSP頁(yè)面,由于request范圍的JavaBean存在于Request對(duì)象中,因此,JavaBean對(duì)象也將隨著Request 對(duì)象送出,被第二個(gè)JSP 程序接收。這種類(lèi)型的JavaBean對(duì)象使得JSP 程序之間傳遞信息更為容易。,7.3.3 session范圍,,session范圍的生命周期就是某個(gè)會(huì)話過(guò)程所經(jīng)歷的時(shí)間。當(dāng)JavaBean的Scope屬性值為session時(shí),表示JavaBean可以在當(dāng)前HTTP會(huì)
15、話的生命周期內(nèi)被所有頁(yè)面訪問(wèn),該JavaBean存在于session對(duì)象中。實(shí)際上,會(huì)話過(guò)程是對(duì)于單個(gè)用戶(hù)而言的,會(huì)話過(guò)程的開(kāi)始以用戶(hù)開(kāi)始訪問(wèn)某個(gè)網(wǎng)站為標(biāo)志,會(huì)話過(guò)程的結(jié)束以用戶(hù)結(jié)束對(duì)該網(wǎng)站的訪問(wèn)為標(biāo)志。不同的用戶(hù)對(duì)應(yīng)著不同的會(huì)話過(guò)程,不同的會(huì)話過(guò)程之間是互不干涉互不影響。,7.3.4 application范圍,當(dāng)JavaBean 的Scope 屬性被指定為application時(shí),它的生命周期和JSP 的Application 對(duì)
16、象具有相同的作用范圍,也和Application 對(duì)象一樣使用。這個(gè)JavaBean的生命周期是最長(zhǎng)的,從創(chuàng)建了這個(gè)JavaBean開(kāi)始,就可以在任何使用相同application的JSP文件中使用這個(gè)JavaBean。這種類(lèi)型的JavaBean可以在多個(gè)用戶(hù)之間共享全局信息。,7.4 通過(guò)JavaBean訪問(wèn)數(shù)據(jù)庫(kù),7.4.1 連接數(shù)據(jù)庫(kù)7.4.2 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,7.4.1 連接數(shù)據(jù)庫(kù),在進(jìn)行JSP應(yīng)用程序開(kāi)發(fā)的時(shí)候,經(jīng)常需要
17、對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)及增刪改,而這些操作使用的又是非常頻繁。因此,可以將操作數(shù)據(jù)庫(kù)的代碼封裝到一個(gè)JavaBean中。當(dāng)需要更改要訪問(wèn)的數(shù)據(jù)庫(kù)時(shí),只要修改JavaBean文件即可,這樣可以簡(jiǎn)化開(kāi)發(fā)過(guò)程,提高代碼的重用性,有利于程序的維護(hù)。通過(guò)JavaBean組件連接數(shù)據(jù)庫(kù)中代碼的實(shí)現(xiàn)一般有兩種方法。1)在類(lèi)的構(gòu)造方法進(jìn)行初始化連接2)通過(guò)類(lèi)中的方法進(jìn)行連接數(shù)據(jù)庫(kù),7.4.2 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,通過(guò)JavaBean實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的信息進(jìn)
18、行查詢(xún)、添加、修改、刪除等操作,在JavaBean中操作數(shù)據(jù)庫(kù)和在JSP頁(yè)面中操作數(shù)據(jù)庫(kù)是一樣的,不同的是JavaBean只負(fù)責(zé)執(zhí)行數(shù)據(jù)庫(kù)操作,不關(guān)心顯示方面的邏輯。這樣可以有效地實(shí)現(xiàn)顯示層和數(shù)據(jù)訪問(wèn)層的分離。JSP頁(yè)面僅負(fù)責(zé)數(shù)據(jù)的錄入和顯示,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的時(shí)候,只需調(diào)用JavaBean中的方法即可。,本 章 小 結(jié),本章介紹了如何使用JSP與JavaBean結(jié)合來(lái)開(kāi)發(fā)應(yīng)用程序,并通過(guò)一個(gè)用戶(hù)信息查詢(xún)的例子介紹了所涉及到的知識(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第6章javabean組件程序設(shè)計(jì)
- 網(wǎng)上購(gòu)物系統(tǒng)(javabean+servlet+jsp)
- 第04章 jsp語(yǔ)法
- 第10章 jsp應(yīng)用實(shí)例
- 第3章 jsp語(yǔ)言基礎(chǔ)
- 第4章 jsp內(nèi)置對(duì)象
- 第7章
- 第7章思考與練習(xí)
- 基于Jsp、JavaBean及Servlet的教務(wù)系統(tǒng)研究開(kāi)發(fā).pdf
- 基于JSP和JavaBean的網(wǎng)上書(shū)店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 第2章 jsp運(yùn)行環(huán)境的搭建
- 第7章 門(mén)與窗
- 第7章_萃取
- 第7章、暗器
- 第7、8章
- 第7章 顏色
- 第7章.doc
- 第7章 墻體
- 畢業(yè)論文---基于jsp和javabean的web開(kāi)發(fā)模式的研究
- 第7章過(guò)程
評(píng)論
0/150
提交評(píng)論