




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 JavaBean技術(shù) JavaBean是Java Web程序的重要組件,它是一些封裝了數(shù)據(jù)和操作的功能類,供JSP或Servlet調(diào)用,完成數(shù)據(jù)封裝和數(shù)據(jù)處理等功能。 本章重點(diǎn)講解JavaBean的設(shè)計(jì)、部署以及在JSP中的使用。 第5章 JavaBean技術(shù)5.1 JavaBean技術(shù)5.2 在JSP中使用JavaBean5.3 多個(gè)JSP頁面共享JavaBean5.4 綜合案例數(shù)據(jù)庫(kù)訪問JavaBean的設(shè)計(jì)本章小結(jié)5.1 JavaBean技術(shù) JavaBean是Java Web程序的重要組成部分,是一個(gè)可重復(fù)使用的軟件組件,是用Java語言編寫的、遵循一定標(biāo)準(zhǔn)的類,它封裝了數(shù)據(jù)和
2、業(yè)務(wù)邏輯,供JSP(或Servlet:下一章介紹)調(diào)用,完成數(shù)據(jù)封裝和數(shù)據(jù)處理等功能。本節(jié)主要內(nèi)容:5.1.1 JavaBean的設(shè)計(jì)5.1.2 JavaBean的安裝部署5.1.1 JavaBean的設(shè)計(jì)JavaBean的設(shè)計(jì)規(guī)則的設(shè)計(jì)規(guī)則(1)JavaBean是一個(gè)公共類。(2)JavaBean類具有一個(gè)公共的無參的構(gòu)造方法。(3)JavaBean所有的屬性定義為私有的。(4)在JavaBean中,需要對(duì)每個(gè)屬性提供兩個(gè)公共方法。假設(shè)屬性名字是xxx,要提供的兩個(gè)方法:n setXxx():用來設(shè)置屬性xxx的值。n getXxx():用來獲取屬性xxx的值(若屬性類型是boolean,則
3、方法名為isXxx()。(5)定義JavaBean時(shí),通常放在一個(gè)命名的包下。5.1.1 JavaBean的設(shè)計(jì)-案例【例5-1】設(shè)計(jì)一個(gè)表示圓的JavaBean類Circle.java,并且該JavaBean中具有計(jì)算圓的周長(zhǎng)和面積的方法?!痉治觥棵枋鲆粋€(gè)圓,需要圓心、半徑、繪制圓的顏色以及是否填充圓,另外,需要知道這是繪制的第幾個(gè)圓,所以,該圓需要5 個(gè)屬性:圓的編號(hào)(整型)、圓心的x坐標(biāo)、圓心的y坐標(biāo),半徑,繪制顏色(字符串類型),是否填充(布爾型)。另外,該類必須具有其業(yè)務(wù)處理功能:計(jì)算圓的面積和圓的周長(zhǎng)?!驹O(shè)計(jì)】根據(jù)JavaBean的設(shè)計(jì)原則,定義有關(guān)的屬性,并給出其對(duì)應(yīng)的get/s
4、et方法,并且一定要包含一個(gè)不帶參數(shù)的構(gòu)造方法。 【實(shí)現(xiàn)】編寫圓的JavaBean類Circle.java。其代碼如下:5.1.2 JavaBean的安裝部署的安裝部署 設(shè)計(jì)的JavaBean類,編譯后,必須部署到Web應(yīng)用程序中才能被JSP或Servlet調(diào)用。 有兩種部署方式:n將單個(gè)JavaBean類,部署到“工程名稱/WEB-INF/classes/”下。nJavaBean的打包類Jar,部署到/WEB-INF/lib下。注意: (1)在MyEclipse開發(fā)環(huán)境中,當(dāng)部署Web工程時(shí),JavaBean會(huì)自動(dòng)部署到正確的位置。 (2)若設(shè)計(jì)的JavaBean被修改,需要重新部署工程才能
5、生效。5.2 在在JSP中使用中使用JavaBean 在JSP頁面中,可以通過腳本代碼直接訪問JavaBean,也可以通過JSP動(dòng)作標(biāo)簽來訪問JavaBean。 采用后一種方法,可以減少JSP網(wǎng)頁中的程序代碼,使它更接近于HTML頁面。 本節(jié)主要介紹利用JSP動(dòng)作標(biāo)簽來訪問JavaBean。 訪問JavaBean的JSP動(dòng)作標(biāo)簽有:n:聲明并創(chuàng)建JavaBean對(duì)象實(shí)例。n:對(duì)JavaBean對(duì)象的指定屬性設(shè)置值。n:獲取JavaBean對(duì)象指定屬性的值,并顯示在網(wǎng)頁上?!痉治觥吭搯栴}需要兩個(gè)網(wǎng)頁input.jsp和show.jsp,以及一個(gè)實(shí)現(xiàn)數(shù)據(jù)計(jì)算的JavaBean類(Add.java)
6、。其處理流程是:網(wǎng)頁input.jsp提交任意兩個(gè)整數(shù),而網(wǎng)頁show.jsp獲取兩個(gè)數(shù)值后創(chuàng)建JavaBean對(duì)象,并調(diào)用求和方法獲得和值,然后顯示計(jì)算結(jié)果?!驹O(shè)計(jì)關(guān)鍵】在兩頁面間利用request對(duì)象實(shí)現(xiàn)數(shù)據(jù)共享(利用請(qǐng)求參數(shù)shuju1、shuju2)。它們之間的關(guān)系如圖所示【例5-2】設(shè)計(jì)Web程序,計(jì)算任意兩個(gè)整數(shù)的和值,并在網(wǎng)頁上顯示結(jié)果。要求,在JavaBean中實(shí)現(xiàn)數(shù)據(jù)的求和功能。【實(shí)現(xiàn)】(1)首先設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)求和的JavaBean類Add.Java。(2)設(shè)計(jì)提交任意兩個(gè)整數(shù)的JSP頁面(input.jsp) 其代碼如下:5.2節(jié)主要內(nèi)容:5.2.1 聲明JavaBean對(duì)象
7、5.2.2 訪問JavaBean屬性設(shè)置JavaBean屬性值5.2.3 訪問JavaBean屬性獲取JavaBean屬性值并顯示5.2.4 訪問JavaBean方法調(diào)用JavaBean業(yè)務(wù)處理方法5.2.5 案例-基于JavaBean+JSP求任意兩數(shù)代數(shù)和5.2.1 聲明聲明JavaBean對(duì)象對(duì)象 聲明JavaBean對(duì)象,需要使用動(dòng)作標(biāo)簽。 聲明格式:聲明格式: 功能功能:在指定的作用范圍內(nèi),調(diào)用由class所指定類的無參構(gòu)造方法創(chuàng)建對(duì)象實(shí)例。若該對(duì)象在該作用范圍內(nèi)已存在,則不生成新對(duì)象,而是直接使用。 使用說明:使用說明: (1)class屬性:用來指定JavaBean的類名,注意,
8、必須使用完全限定類名。 (2)id屬性:指定所要?jiǎng)?chuàng)建的對(duì)象名稱。 (3)scope屬性:指定所創(chuàng)建對(duì)象的作用范圍,其取值有四個(gè):page、request、session、application,默認(rèn)值是page。分別表示頁面、請(qǐng)求、會(huì)話、應(yīng)用四種范圍, 例如:對(duì)于例5-2所設(shè)計(jì)的JavaBean,要在show.jsp頁面中,創(chuàng)建一個(gè)Add類對(duì)象c,且其作用范圍是session,則需要使用語句: 若采用如下語句,則其作用范圍是page。 5.2.2 訪問訪問JavaBean屬性屬性 設(shè)置設(shè)置JavaBean屬性值屬性值 設(shè)置JavaBean屬性值,要使用動(dòng)作標(biāo)簽。而動(dòng)作標(biāo)簽是通過JavaBean
9、中的set方法給相應(yīng)的屬性設(shè)置屬性值。該動(dòng)作標(biāo)簽有4種設(shè)置方式。1.簡(jiǎn)單簡(jiǎn)單JavaBean屬性設(shè)置屬性設(shè)置 在獲得Javabean實(shí)例后,就可以對(duì)其屬性值進(jìn)行重新設(shè)置,設(shè)置屬性值的格式: 其中:beanname代表JavaBean對(duì)象名,對(duì)應(yīng)標(biāo)記的id屬性;propertyname代表JavaBean的屬性名;beanvalue是要設(shè)置的值。在設(shè)置值時(shí),自動(dòng)實(shí)現(xiàn)類型轉(zhuǎn)換(將字符串自動(dòng)轉(zhuǎn)換為JavaBean中屬性所聲明的類型)。 功能:為beanname對(duì)象的指定屬性propertyname設(shè)置指定值beanvalue。 例如:對(duì)于例5-2,給c對(duì)象的兩屬性設(shè)置值分別為10和20,則需要的語句
10、為: 另外,在JSP中,可以使用JSP腳本代碼,對(duì)JavaBean實(shí)例設(shè)置屬性值,例如2. 將單個(gè)屬性與輸入?yún)?shù)直接關(guān)聯(lián) 對(duì)于客戶端所提交的請(qǐng)求參數(shù),可以直接給JavaBean實(shí)例中的同名屬性賦值。 設(shè)置格式: 功能:將參數(shù)名稱為propertyname的值提交給同JavaBean屬性名稱同名的屬性。并自動(dòng)實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換。例如:對(duì)于例5-2,可以采用如下語句: 3. 將單個(gè)屬性與輸入?yún)?shù)間接關(guān)聯(lián) 若JavaBean的屬性與請(qǐng)求參數(shù)的名稱不同,則可以通過JavaBean屬性與請(qǐng)求參數(shù)之間的間接關(guān)聯(lián)實(shí)現(xiàn)賦值格式: 功能:將請(qǐng)求參數(shù)名稱為paramname的值給JavaBean的propertyn
11、ame屬性設(shè)置屬性值。 假設(shè),所設(shè)計(jì)的提交頁面input2.jsp,其代碼如下: 加數(shù): 被加數(shù): 而設(shè)計(jì)的Add.java類中,兩屬性名為:private int shuju1;private int shuju2; 由于在JSP頁面中和JavaBean類add.java中,兩處的屬性不同名,需要采用間接關(guān)聯(lián)的方式實(shí)現(xiàn)參數(shù)傳遞。其傳遞語句為: 4. 將所有的屬性與請(qǐng)求參數(shù)關(guān)聯(lián) 將所有的屬性與請(qǐng)求參數(shù)關(guān)聯(lián),實(shí)現(xiàn)自動(dòng)賦值并自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型。 設(shè)置格式: 功能:將提交頁面中表單輸入域所提供的輸入值提交到JavaBean對(duì)象中相同名稱的屬性中。例如:對(duì)于例5-2,通過提交頁面input2.jsp將數(shù)
12、值提供給對(duì)象c,其語句為: 注意:若JavaBean類Add.java中的屬性名稱(shuju1、shuju2)與input2.jsp中兩個(gè)輸入域?qū)傩悦Q(name=shuju1,name=shuju2)不同,就不能給JavaBeand對(duì)象相應(yīng)屬性設(shè)置值。5.2.3 訪問訪問JavaBean屬性屬性 獲取獲取JavaBean屬性值并顯示屬性值并顯示 在JSP頁面顯示JavaBean屬性值,需要使用動(dòng)作標(biāo)簽。 格式:格式: 功能:功能:獲取JavaBean對(duì)象指定屬性的值,并顯示在頁面上。 說明:說明:jsp:getProperty動(dòng)作標(biāo)簽是通過JavaBean中的get方法獲取對(duì)應(yīng)屬性的值。
13、例如:例如:用jsp:useBean創(chuàng)建的對(duì)象實(shí)例c,獲取并在頁面上顯示屬性值的語句為: 5.2.4 訪問訪問JavaBean方法方法 調(diào)用調(diào)用JavaBean業(yè)務(wù)處理方法業(yè)務(wù)處理方法 當(dāng)使用jsp:useBean實(shí)例化一個(gè)JavaBean對(duì)象(或通過jsp:setProperty修改屬性值)后,可以調(diào)用JavaBean的業(yè)務(wù)處理方法,完成該對(duì)象所希望處理的功能。 調(diào)用方式一般采用JSP腳本代碼。 例如: 用jsp:useBean創(chuàng)建的對(duì)象實(shí)例c,通過jsp:setProperty修改屬性值后,計(jì)算并顯示和值。 其代碼如下: 加數(shù): 被加數(shù): 和值為:對(duì)于例5-2,利用JSP訪問JavaBea
14、n的show.jsp頁面其代碼如下:【說明】(1)為c對(duì)象的屬性賦值: 等價(jià)于 (2)顯示屬性值: 等價(jià)于 5.2.4 訪問訪問JavaBean方法方法 調(diào)用調(diào)用JavaBean業(yè)務(wù)處理方法業(yè)務(wù)處理方法 在例5-2 show.jsp頁面中,使用JSP動(dòng)作標(biāo)簽訪問JavaBean的,對(duì)于show.jsp頁面中,可以通過程序代碼(腳本)直接訪問JavaBean,其代碼如下:5.2.5 案例案例 基于基于JavaBean+JSP求任意兩數(shù)代數(shù)和求任意兩數(shù)代數(shù)和 對(duì)于例5-2分別給出了利用JSP動(dòng)作標(biāo)簽和JSP腳本代碼對(duì)Javabean對(duì)象的創(chuàng)建及其屬性值的訪問。 但是在show.jsp中都存在JSP
15、腳本代碼,這不是JSP程序所提倡的,下面,重新設(shè)計(jì)例5-2,使兩個(gè)頁面中都不出現(xiàn)JSP腳本代碼?!靖倪M(jìn)思想】需要改進(jìn)JavaBean類Add.java的設(shè)計(jì),該類需要設(shè)置3個(gè)屬性,加數(shù)、被加數(shù)、和值,并通過和值屬性的get/set方法在show.jsp頁面中,設(shè)置該屬性值并顯示屬性值。【實(shí)現(xiàn)】(1)重新設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)求和的JavaBean類Add.Java。(2)提交整數(shù)的JSP頁面(input.jsp),代碼不變。(3)計(jì)算并顯示計(jì)算結(jié)果的show.jsp。代碼如下:5.3 多個(gè)多個(gè)JSP頁面共享頁面共享JavaBean 在JSP中,對(duì)于動(dòng)作標(biāo)記可以使用scope屬性來指定bean存儲(chǔ)的位置(
16、作用域),可以讓多個(gè)JSP頁面(或多個(gè)Servlet或Servlet與JSP)共享數(shù)據(jù)。本節(jié)主要內(nèi)容:5.3.1 共享 JavaBean的創(chuàng)建5.3.2 案例網(wǎng)頁計(jì)數(shù)器JavaBean的設(shè)計(jì)與使用5.3.1 共享共享JavaBean的創(chuàng)建的創(chuàng)建共享JavaBean的創(chuàng)建格式: 其中,屬性scope的取值有四個(gè): page:頁面范圍 request:請(qǐng)求范圍 session:會(huì)話范圍 application:應(yīng)用范圍。5.3.1 共享共享JavaBean的創(chuàng)建的創(chuàng)建1page共享: 默認(rèn)值,使用非共享(作用域?yàn)轫撁?的bean。2. request共享: 共享作用域?yàn)檎?qǐng)求的bean。處理當(dāng)前請(qǐng)求
17、的過程中,bean對(duì)象應(yīng)存儲(chǔ)在request對(duì)象中,可以通過getAttribute訪問到它。3session共享: 共享作用域?yàn)闀?huì)話的bean。bean會(huì)被存儲(chǔ)在與當(dāng)前請(qǐng)求關(guān)聯(lián)的session中,和普通的會(huì)話對(duì)象一樣,可以使用getAttribute訪問到它們。4. application共享: 共享作用域?yàn)閼?yīng)用(即作用域?yàn)镾ervletContext)的bean。Bean將存儲(chǔ)在application中,由同一Web應(yīng)用中的所有JSP共享,可以使用getAttribute訪問到它們。5.3.2 案例案例 網(wǎng)頁計(jì)數(shù)器網(wǎng)頁計(jì)數(shù)器JavaBean的設(shè)計(jì)與使用的設(shè)計(jì)與使用【例5-3】設(shè)計(jì)一個(gè)Jav
18、aBean記載網(wǎng)頁的訪問數(shù)量,在動(dòng)態(tài)頁面中訪問該JavaBean,實(shí)現(xiàn)網(wǎng)頁的計(jì)數(shù)。假設(shè)要統(tǒng)計(jì)兩個(gè)網(wǎng)頁總共的訪問量?!痉治觥吭搯栴}需要統(tǒng)計(jì)網(wǎng)頁訪問次數(shù),在JavaBean中有計(jì)數(shù)屬性,在頁面被訪問時(shí),該計(jì)數(shù)器自動(dòng)增1,同時(shí)要存放該數(shù)值,所以,在被訪問頁面需要?jiǎng)?chuàng)建apllication范圍的一個(gè)JavaBean對(duì)象。 為了體現(xiàn)不同頁面對(duì)apllication范圍的JavaBean對(duì)象的共享,這里設(shè)計(jì)兩個(gè)頁面程序counter1.jsp和counter2.jsp?!驹O(shè)計(jì)】該問題,需要三個(gè)組件(一個(gè)javaBean,兩個(gè)jsp),即: 具有統(tǒng)計(jì)功能的JavaBean。 獲取Javabean中的計(jì)數(shù)屬性
19、的值的JSP頁面:counter1.jsp 顯示結(jié)果的JSP頁面:counter2.jsp。 【實(shí)現(xiàn)】(1)設(shè)計(jì)記載網(wǎng)頁訪問數(shù)量的JavaBean:Count.java(2)第1個(gè)需要計(jì)數(shù)的網(wǎng)頁(counter1.jsp)中訪問JavaBean對(duì)象(3)第2個(gè)需要計(jì)數(shù)的網(wǎng)頁(counter2.jsp)中訪問JavaBean對(duì)象代碼如下5.4 綜合案例綜合案例 數(shù)據(jù)庫(kù)訪問數(shù)據(jù)庫(kù)訪問JavaBean的設(shè)計(jì)的設(shè)計(jì)【例5-4】數(shù)據(jù)庫(kù)操作在一個(gè)Web應(yīng)用程序中的后臺(tái)處理中占有很大的比重,本例設(shè)計(jì)一組JavaBean封裝數(shù)據(jù)庫(kù)的基本操作,供上層模塊調(diào)用,提高程序的復(fù)用性和可移植性?!痉治觥考僭O(shè)操作的數(shù)據(jù)庫(kù)名是test,表格是user(userid,username,sex),封裝的基本操作是記錄的添加、修改、查詢?nèi)?、按userid查找用戶、按userid刪除用戶?!驹O(shè)計(jì)】該案例需要設(shè)計(jì)以下組件:(1)數(shù)據(jù)庫(kù)test及其數(shù)據(jù)庫(kù)表user。(2)在類路徑(src)下建立屬性文件perties,存放數(shù)據(jù)庫(kù)的基本信息,這樣做的好處是數(shù)據(jù)庫(kù)信息發(fā)生變化時(shí)只需要修改該文件,不用重新編譯代碼。(3)建立一個(gè)獲取連接和釋放資源的工具類JdbcUtil.java。(4)建立類User.java實(shí)現(xiàn)記錄信息對(duì)象化,體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)思想。(5)建立類UserDao.java封裝基
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計(jì)單位文件管理制度
- 設(shè)計(jì)裝飾公司管理制度
- 診室護(hù)士日常管理制度
- 診所污水采樣管理制度
- 試劑耗材存放管理制度
- 財(cái)務(wù)資金收款管理制度
- 財(cái)政補(bǔ)助收入管理制度
- 貨架生產(chǎn)倉(cāng)庫(kù)管理制度
- 貨物進(jìn)出碼頭管理制度
- 貨運(yùn)電梯安全管理制度
- 招聘心里測(cè)試題及答案
- 餐飲老人臨時(shí)用工協(xié)議書
- 高校教師資格證考試《高等教育學(xué)》真題及解析(2025年新版)
- T/SHSOT 015.1-2024皮膚角質(zhì)層膠帶剝離方法及應(yīng)用第1部分:角質(zhì)層剝離方法
- 上海市靜安區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末語文試題(解析版)
- 2025年中醫(yī)基礎(chǔ)理論考試試題及答案
- 銀行個(gè)人資產(chǎn)證明信(8篇)
- 合同款項(xiàng)代付協(xié)議書
- 2025甘肅省農(nóng)墾集團(tuán)有限責(zé)任公司招聘生產(chǎn)技術(shù)人員145人筆試參考題庫(kù)附帶答案詳解
- 2025年春季《中華民族共同體概論》第四次平時(shí)作業(yè)-國(guó)開(XJ)-參考資料
- 2025至2030年中國(guó)豆角絲行業(yè)投資前景及策略咨詢報(bào)告
評(píng)論
0/150
提交評(píng)論