JSP程序設(shè)計(jì)基礎(chǔ)教程(第5章)_第1頁
JSP程序設(shè)計(jì)基礎(chǔ)教程(第5章)_第2頁
JSP程序設(shè)計(jì)基礎(chǔ)教程(第5章)_第3頁
JSP程序設(shè)計(jì)基礎(chǔ)教程(第5章)_第4頁
JSP程序設(shè)計(jì)基礎(chǔ)教程(第5章)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JSP程序設(shè)計(jì)基礎(chǔ)教程第5章JavaBean技術(shù)《JSP程序設(shè)計(jì)基礎(chǔ)教程》課件制作人:王國輝第

5章JavaBean技術(shù)5.1JavaBean概述5.2創(chuàng)建JavaBean5.3JavaBean的應(yīng)用5.4JavaBean的應(yīng)用實(shí)例√√√√課件制作人:王國輝5.1JavaBean概述

JSP較其他同類語言最強(qiáng)有力的方面就是能夠使用JavaBean組件,JavaBean組件就是利用Java語言編寫的組件,它好比一個(gè)封裝好的容器,使用者并不知道其內(nèi)部是如何構(gòu)造的,但它卻具有適應(yīng)用戶要求的功能,每個(gè)JavaBean都實(shí)現(xiàn)了一個(gè)特定的功能,通過合理地組織不同功能的JavaBean,可以快速生成一個(gè)全新的應(yīng)用程序。如果將一個(gè)應(yīng)用程序比做一間空房間,那么這些JavaBean就好比房間中的家俱。課件制作人:王國輝5.1JavaBean概述5.1.1JavaBean技術(shù)介紹5.1.2JavaBean的種類5.1.3JavaBean規(guī)范√√√課件制作人:王國輝5.1.1JavaBean技術(shù)介紹使用JavaBean的最大優(yōu)點(diǎn)就在于它可以提高代碼的重用性,例如正在開發(fā)一個(gè)商品信息顯示界面,由于商品信息存放在數(shù)據(jù)庫指定表中,此時(shí)需要執(zhí)行連接數(shù)據(jù)庫、查詢數(shù)據(jù)庫、顯示數(shù)據(jù)操作,如果將這些數(shù)據(jù)庫操作代碼都放入JSP頁面中,代碼復(fù)雜度可以想象,非編程人員根本無法接收這樣的代碼,這將為開發(fā)帶來極大的不便。編寫一個(gè)成功的JavaBean,宗旨是“一次性編寫,任何地方執(zhí)行,任何地方重用”,這正迎合了當(dāng)今軟件開發(fā)的潮流,“簡(jiǎn)單復(fù)雜化”,將復(fù)雜需求分解成簡(jiǎn)單的功能模塊,這些模塊是相對(duì)獨(dú)立的,可以繼承、重用,這樣為軟件開發(fā)提供了一個(gè)簡(jiǎn)單、緊湊、優(yōu)秀的解決方案。課件制作人:王國輝5.1.1JavaBean技術(shù)介紹1.一次性編寫一個(gè)成功的JavaBean組件重用時(shí)不需要重新編寫,開發(fā)者只需要根據(jù)需求修改和升級(jí)代碼即可。2.任何地方執(zhí)行一個(gè)成功的JavaBean組件可以在任何平臺(tái)上運(yùn)行,由于JavaBean是基于Java語言編寫的,所以它可以輕易移植到各種運(yùn)行平臺(tái)上。3.任何地方重用一個(gè)成功的JavaBean組件能夠被在多種方案中使用,包括應(yīng)用程序、其他組件、Web應(yīng)用等。課件制作人:王國輝5.1.2JavaBean的種類最初,JavaBean主要應(yīng)用于可視化領(lǐng)域,現(xiàn)在JavaBean更多應(yīng)用于非可視化領(lǐng)域,并且在服務(wù)器端表現(xiàn)出卓越的性能。

JavaBean按功能可分為可視化JavaBean和不可視化JavaBean兩類。

(1)可視化JavaBean可視化JavaBean就是具有GUI圖形用戶界面的JavaBean;不可視JavaBean就是沒有GUI圖形用戶界面的JavaBean,最終對(duì)用戶是不可見的,它更多地是被應(yīng)用到JSP中。課件制作人:王國輝5.1.2JavaBean的種類(2)不可視JavaBean不可視JavaBean又分為值JavaBean和工具JavaBean。值JavaBean嚴(yán)格遵循了JavaBean的命名規(guī)范,通常用來封裝表單數(shù)據(jù),作為信息的容器。

【例5-1】值JavaBean示例工具JavaBean則可以不遵循JavaBean規(guī)范,通常用于封裝業(yè)務(wù)邏輯,數(shù)據(jù)操作等,例如連接數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫進(jìn)行增、刪、改、查和解決中文亂碼等操作。工具JavaBean可以實(shí)現(xiàn)業(yè)務(wù)邏輯與頁面顯示的分離,提高了代碼的可讀性與易維護(hù)性。例如,下面的JavaBean就是一個(gè)工具JavaBean,它用來轉(zhuǎn)換字符串中的“<”與“>”字符。課件制作人:王國輝5.1.2JavaBean的種類

【例5-2】工具JavaBean示例課件制作人:王國輝5.1.3JavaBean規(guī)范通常一個(gè)標(biāo)準(zhǔn)的JavaBean需遵循以下規(guī)范:(1)實(shí)現(xiàn)java.io.Serializable接口;(2)是一個(gè)公共類;(3)類中必須存在一個(gè)無參數(shù)的構(gòu)造函數(shù);(4)提供對(duì)應(yīng)的setXxx()和getXxx()方法來存取類中的屬性,方法中的“Xxx”為屬性名稱,屬性的第一個(gè)字母應(yīng)大寫。若屬性為布爾類型,則可使用isXxx()方法代替getXxx()方法。課件制作人:王國輝5.1.3JavaBean規(guī)范實(shí)現(xiàn)java.io.Serializable接口的類實(shí)例化的對(duì)象被JVM(Java虛擬機(jī))轉(zhuǎn)化為一個(gè)字節(jié)序列,并且能夠?qū)⑦@個(gè)字節(jié)序列完全恢復(fù)為原來的對(duì)象,序列化機(jī)制可以彌補(bǔ)網(wǎng)絡(luò)傳輸中不同操作系統(tǒng)的差異問題。例如,當(dāng)一臺(tái)計(jì)算機(jī)在Windows系統(tǒng)上創(chuàng)建了一個(gè)對(duì)象,將這個(gè)對(duì)象序列化,并且通過網(wǎng)絡(luò)將它發(fā)送到一臺(tái)操作系統(tǒng)為L(zhǎng)inux的計(jì)算機(jī)上,這時(shí)不必?fù)?dān)心因?yàn)椴僮飨到y(tǒng)不同,傳輸?shù)膶?duì)象會(huì)有所改變,因?yàn)檫@個(gè)對(duì)象會(huì)重新準(zhǔn)確組裝。作為JavaBean,對(duì)象的序列化也是必須的。使用一個(gè)JavaBean時(shí),一般情況下是在設(shè)計(jì)階段對(duì)它的狀態(tài)信息進(jìn)行配置,并在程序啟動(dòng)后期恢復(fù),這種具體工作是由序列化完成的。課件制作人:王國輝5.1.3JavaBean規(guī)范說明:如果在JSP中使用JavaBean組件,創(chuàng)建的JavaBean不必實(shí)現(xiàn)java.io.Serializable接口仍然可以運(yùn)行。

【例5-3】JavaBean規(guī)范示例課件制作人:王國輝5.2

創(chuàng)建JavaBean

【例5-4】在Eclipse下創(chuàng)建JavaBean

JavaBean實(shí)質(zhì)上就是一種遵循了特殊規(guī)范的Java類,所以創(chuàng)建一個(gè)JavaBean,就是在遵循這些規(guī)范的基礎(chǔ)上創(chuàng)建一個(gè)Java類。

在前面幾節(jié)中已經(jīng)多次給出了JavaBean的代碼,所以在這里不再給出代碼進(jìn)行講解。讀者可以新建一個(gè)記事本,然后向記事本中輸入代碼,最后保存為*.java文件即可完成一個(gè)JavaBean的創(chuàng)建。但通常都使用開發(fā)工具進(jìn)行創(chuàng)建,如Eclipse。使用Eclipse開發(fā)工具創(chuàng)建JavaBean可以使用工具提供的功能自動(dòng)生成屬性的getXXX()與setXXX()方法,下面介紹如何在Eclipse中創(chuàng)建JavaBean。課件制作人:王國輝5.3JavaBean的應(yīng)用5.3.1獲取JavaBean信息

5.3.2向JavaBean中發(fā)送信息5.3.3在JSP頁面中應(yīng)用工具JavaBean√√√課件制作人:王國輝5.3.1獲取JavaBean信息

其中,name用于指定JavaBean的名稱;property用于指定要獲取屬性值的屬性。

值JavaBean通常用來封裝個(gè)單數(shù)據(jù),作為信息的容器,因此,在獲取JavaBean信息時(shí),采用的是值JavaBean。在JSP中,可以通過<getProperty>動(dòng)作指令獲取JavaBean中各屬性的屬性值。<getProperty>動(dòng)作指令的語法格式如下:<jsp:getPropertyname="BeanName"property="propertyName"/>【例5-5】獲取JavaBean信息課件制作人:王國輝5.3.2向JavaBean中發(fā)送信息

在JSP中,不僅可以利用<getProperty>獲取JavaBean的屬性值,還可以利用<setProperty>屬性設(shè)置JavaBean的屬性值。利用<setProperty>屬性設(shè)置JavaBean的屬性值時(shí),可以分為以下3種情況。1.

通過表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值2.

通過HTTP表單設(shè)置JavaBean中的屬性值3.通過request參數(shù)設(shè)置JavaBean屬性值√√√課件制作人:王國輝通過表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值其中,name用于指定在當(dāng)前JSP頁面使用的JavaBean的名稱;property用于指定JavaBean中的屬性名;value用于指定JavaBean中指定屬性的屬性值。

在JSP頁面中,通過表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值時(shí),使用的<setProperty>動(dòng)作指令的語法格式如下:<jsp:setPropertyname="BeanName"property="propertyName"value="<%expression%>"或<jsp:setPropertyname="BeanName"property="propertyName"value="string"課件制作人:王國輝【例5-6】通過表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值。通過表達(dá)式的值或字符串設(shè)置JavaBean中的屬性值

編寫一個(gè)保存用戶信息的JavaBean,并在該JavaBean中設(shè)置username屬性的默認(rèn)值為wgh,pwd屬性的默認(rèn)值為111111,然后在JSP頁面中獲取JavaBean信息。課件制作人:王國輝通過HTTP表單設(shè)置JavaBean中的屬性值

其中,name用于指定在當(dāng)前JSP頁面使用的JavaBean的名稱;property用于指定JavaBean中的屬性名,這里使用了通配符“*”,代表全部的屬性。

通過HTTP表單設(shè)置JavaBean中的相應(yīng)屬性值時(shí),要求表單元素參數(shù)的名稱必須與JavaBean中屬性名相同。這樣才能保證HTTP表單中的參數(shù)能夠正確傳遞給指定的屬性。使用<setProperty>動(dòng)作指令通過HTTP表單設(shè)置JavaBean中的屬性值的語法格式如下:<jsp:setPropertyname="BeanName"property="*"/>課件制作人:王國輝【例5-7】通過HTTP表單設(shè)置JavaBean中的屬性值通過HTTP表單設(shè)置JavaBean中的屬性值創(chuàng)建一個(gè)登錄頁面,如圖1所示。當(dāng)用戶輸入用戶名和密碼進(jìn)行登錄后,在另一個(gè)頁面中首先通過HTTP表單設(shè)置JavaBean中的用戶名和密碼屬性,然后再獲取JavaBean中的用戶名和密碼屬性的值并輸出,如圖2所示。圖1登錄頁面圖2獲取登錄信息課件制作人:王國輝通過request參數(shù)設(shè)置JavaBean屬性值

其中,name用于指定在當(dāng)前JSP頁面使用的JavaBean的名稱;property用于指定JavaBean中的屬性名;param用于指定JSP頁面中的表單元素的名稱。通過request參數(shù)設(shè)置JavaBean屬性值,要求request參數(shù)名必須與表單元素的參數(shù)名相同。實(shí)際上這種處理方式主要用于解決表單元素的名稱與JavaBean中的屬性名不相同的情況。使用<setProperty>動(dòng)作指令通過request參數(shù)設(shè)置JavaBean屬性值的語法格式如下:<jsp:setPropertyname="BeanName"property="propertyName"param="parameterName"課件制作人:王國輝【例5-8】通過request參數(shù)設(shè)置JavaBean屬性值通過request參數(shù)設(shè)置JavaBean屬性值創(chuàng)建一個(gè)登錄頁面,如圖1所示。當(dāng)用戶輸入用戶名和密碼進(jìn)行登錄后,在另一個(gè)頁面中首先通過request參數(shù)設(shè)置JavaBean中的用戶名和密碼屬性,然后再獲取JavaBean中的用戶名和密碼屬性的值并輸出,如圖2所示。圖1登錄頁面

圖2獲取登錄信息課件制作人:王國輝

【例5-9】在JSP頁面中應(yīng)用工具JavaBean5.3.3在JSP頁面中應(yīng)用工具JavaBean

工具JavaBean通常用于封裝業(yè)務(wù)邏輯、數(shù)據(jù)操作等,例如連接數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫進(jìn)行增、刪、改、查和解決中文亂碼等操作。使用工具JavaBean可以實(shí)現(xiàn)業(yè)務(wù)邏輯與前臺(tái)程序的分離,提高了代碼的可讀性與易維護(hù)性。例如,在實(shí)現(xiàn)用戶留言功能時(shí),要將用戶輸入的留言標(biāo)題和留言內(nèi)容輸出到頁面中。若用戶輸入的信息中存在HTML語法中的“<”和“>”標(biāo)識(shí),如輸入<inputtype=“text”>,則將該內(nèi)容輸出到頁面后,會(huì)顯示一個(gè)文本框,如下圖所示。課件制作人:王國輝但預(yù)先設(shè)想的是原封不動(dòng)地輸出用戶輸入的內(nèi)容。解決該問題的方法是在輸出內(nèi)容之前,將內(nèi)容中的“<”和“>”等HTML中的特殊字符進(jìn)行轉(zhuǎn)換,如將“<”轉(zhuǎn)換為“<”,將“>”轉(zhuǎn)換為“>”,這樣當(dāng)瀏覽器遇到“<”時(shí),就會(huì)輸出“<”字符,如下圖所示。5.3.3在JSP頁面中應(yīng)用工具JavaBean課件制作人:王國輝5.3.3在JSP頁面中應(yīng)用工具JavaBean課件制作人:王國輝5.4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論