第5章_JavaBean技術_第1頁
第5章_JavaBean技術_第2頁
第5章_JavaBean技術_第3頁
第5章_JavaBean技術_第4頁
第5章_JavaBean技術_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第5章 JavaBean技術 JavaBean是Java Web程序的重要組件,它是一些封裝了數據和操作的功能類,供JSP或Servlet調用,完成數據封裝和數據處理等功能。 本章重點講解JavaBean的設計、部署以及在JSP中的使用。 第5章 JavaBean技術5.1 JavaBean技術5.2 在JSP中使用JavaBean5.3 多個JSP頁面共享JavaBean5.4 綜合案例數據庫訪問JavaBean的設計本章小結5.1 JavaBean技術 JavaBean是Java Web程序的重要組成部分,是一個可重復使用的軟件組件,是用Java語言編寫的、遵循一定標準的類,它封裝了數據和

2、業(yè)務邏輯,供JSP(或Servlet:下一章介紹)調用,完成數據封裝和數據處理等功能。本節(jié)主要內容:5.1.1 JavaBean的設計5.1.2 JavaBean的安裝部署5.1.1 JavaBean的設計JavaBean的設計規(guī)則的設計規(guī)則(1)JavaBean是一個公共類。(2)JavaBean類具有一個公共的無參的構造方法。(3)JavaBean所有的屬性定義為私有的。(4)在JavaBean中,需要對每個屬性提供兩個公共方法。假設屬性名字是xxx,要提供的兩個方法:n setXxx():用來設置屬性xxx的值。n getXxx():用來獲取屬性xxx的值(若屬性類型是boolean,則

3、方法名為isXxx()。(5)定義JavaBean時,通常放在一個命名的包下。5.1.1 JavaBean的設計-案例【例5-1】設計一個表示圓的JavaBean類Circle.java,并且該JavaBean中具有計算圓的周長和面積的方法?!痉治觥棵枋鲆粋€圓,需要圓心、半徑、繪制圓的顏色以及是否填充圓,另外,需要知道這是繪制的第幾個圓,所以,該圓需要5 個屬性:圓的編號(整型)、圓心的x坐標、圓心的y坐標,半徑,繪制顏色(字符串類型),是否填充(布爾型)。另外,該類必須具有其業(yè)務處理功能:計算圓的面積和圓的周長?!驹O計】根據JavaBean的設計原則,定義有關的屬性,并給出其對應的get/s

4、et方法,并且一定要包含一個不帶參數的構造方法。 【實現】編寫圓的JavaBean類Circle.java。其代碼如下:5.1.2 JavaBean的安裝部署的安裝部署 設計的JavaBean類,編譯后,必須部署到Web應用程序中才能被JSP或Servlet調用。 有兩種部署方式:n將單個JavaBean類,部署到“工程名稱/WEB-INF/classes/”下。nJavaBean的打包類Jar,部署到/WEB-INF/lib下。注意: (1)在MyEclipse開發(fā)環(huán)境中,當部署Web工程時,JavaBean會自動部署到正確的位置。 (2)若設計的JavaBean被修改,需要重新部署工程才能

5、生效。5.2 在在JSP中使用中使用JavaBean 在JSP頁面中,可以通過腳本代碼直接訪問JavaBean,也可以通過JSP動作標簽來訪問JavaBean。 采用后一種方法,可以減少JSP網頁中的程序代碼,使它更接近于HTML頁面。 本節(jié)主要介紹利用JSP動作標簽來訪問JavaBean。 訪問JavaBean的JSP動作標簽有:n:聲明并創(chuàng)建JavaBean對象實例。n:對JavaBean對象的指定屬性設置值。n:獲取JavaBean對象指定屬性的值,并顯示在網頁上?!痉治觥吭搯栴}需要兩個網頁input.jsp和show.jsp,以及一個實現數據計算的JavaBean類(Add.java)

6、。其處理流程是:網頁input.jsp提交任意兩個整數,而網頁show.jsp獲取兩個數值后創(chuàng)建JavaBean對象,并調用求和方法獲得和值,然后顯示計算結果?!驹O計關鍵】在兩頁面間利用request對象實現數據共享(利用請求參數shuju1、shuju2)。它們之間的關系如圖所示【例5-2】設計Web程序,計算任意兩個整數的和值,并在網頁上顯示結果。要求,在JavaBean中實現數據的求和功能?!緦崿F】(1)首先設計實現數據求和的JavaBean類Add.Java。(2)設計提交任意兩個整數的JSP頁面(input.jsp) 其代碼如下:5.2節(jié)主要內容:5.2.1 聲明JavaBean對象

7、5.2.2 訪問JavaBean屬性設置JavaBean屬性值5.2.3 訪問JavaBean屬性獲取JavaBean屬性值并顯示5.2.4 訪問JavaBean方法調用JavaBean業(yè)務處理方法5.2.5 案例-基于JavaBean+JSP求任意兩數代數和5.2.1 聲明聲明JavaBean對象對象 聲明JavaBean對象,需要使用動作標簽。 聲明格式:聲明格式: 功能功能:在指定的作用范圍內,調用由class所指定類的無參構造方法創(chuàng)建對象實例。若該對象在該作用范圍內已存在,則不生成新對象,而是直接使用。 使用說明:使用說明: (1)class屬性:用來指定JavaBean的類名,注意,

8、必須使用完全限定類名。 (2)id屬性:指定所要創(chuàng)建的對象名稱。 (3)scope屬性:指定所創(chuàng)建對象的作用范圍,其取值有四個:page、request、session、application,默認值是page。分別表示頁面、請求、會話、應用四種范圍, 例如:對于例5-2所設計的JavaBean,要在show.jsp頁面中,創(chuàng)建一個Add類對象c,且其作用范圍是session,則需要使用語句: 若采用如下語句,則其作用范圍是page。 5.2.2 訪問訪問JavaBean屬性屬性 設置設置JavaBean屬性值屬性值 設置JavaBean屬性值,要使用動作標簽。而動作標簽是通過JavaBean

9、中的set方法給相應的屬性設置屬性值。該動作標簽有4種設置方式。1.簡單簡單JavaBean屬性設置屬性設置 在獲得Javabean實例后,就可以對其屬性值進行重新設置,設置屬性值的格式: 其中:beanname代表JavaBean對象名,對應標記的id屬性;propertyname代表JavaBean的屬性名;beanvalue是要設置的值。在設置值時,自動實現類型轉換(將字符串自動轉換為JavaBean中屬性所聲明的類型)。 功能:為beanname對象的指定屬性propertyname設置指定值beanvalue。 例如:對于例5-2,給c對象的兩屬性設置值分別為10和20,則需要的語句

10、為: 另外,在JSP中,可以使用JSP腳本代碼,對JavaBean實例設置屬性值,例如2. 將單個屬性與輸入參數直接關聯 對于客戶端所提交的請求參數,可以直接給JavaBean實例中的同名屬性賦值。 設置格式: 功能:將參數名稱為propertyname的值提交給同JavaBean屬性名稱同名的屬性。并自動實現數據類型轉換。例如:對于例5-2,可以采用如下語句: 3. 將單個屬性與輸入參數間接關聯 若JavaBean的屬性與請求參數的名稱不同,則可以通過JavaBean屬性與請求參數之間的間接關聯實現賦值格式: 功能:將請求參數名稱為paramname的值給JavaBean的propertyn

11、ame屬性設置屬性值。 假設,所設計的提交頁面input2.jsp,其代碼如下: 加數: 被加數: 而設計的Add.java類中,兩屬性名為:private int shuju1;private int shuju2; 由于在JSP頁面中和JavaBean類add.java中,兩處的屬性不同名,需要采用間接關聯的方式實現參數傳遞。其傳遞語句為: 4. 將所有的屬性與請求參數關聯 將所有的屬性與請求參數關聯,實現自動賦值并自動轉換數據類型。 設置格式: 功能:將提交頁面中表單輸入域所提供的輸入值提交到JavaBean對象中相同名稱的屬性中。例如:對于例5-2,通過提交頁面input2.jsp將數

12、值提供給對象c,其語句為: 注意:若JavaBean類Add.java中的屬性名稱(shuju1、shuju2)與input2.jsp中兩個輸入域屬性名稱(name=shuju1,name=shuju2)不同,就不能給JavaBeand對象相應屬性設置值。5.2.3 訪問訪問JavaBean屬性屬性 獲取獲取JavaBean屬性值并顯示屬性值并顯示 在JSP頁面顯示JavaBean屬性值,需要使用動作標簽。 格式:格式: 功能:功能:獲取JavaBean對象指定屬性的值,并顯示在頁面上。 說明:說明:jsp:getProperty動作標簽是通過JavaBean中的get方法獲取對應屬性的值。

13、例如:例如:用jsp:useBean創(chuàng)建的對象實例c,獲取并在頁面上顯示屬性值的語句為: 5.2.4 訪問訪問JavaBean方法方法 調用調用JavaBean業(yè)務處理方法業(yè)務處理方法 當使用jsp:useBean實例化一個JavaBean對象(或通過jsp:setProperty修改屬性值)后,可以調用JavaBean的業(yè)務處理方法,完成該對象所希望處理的功能。 調用方式一般采用JSP腳本代碼。 例如: 用jsp:useBean創(chuàng)建的對象實例c,通過jsp:setProperty修改屬性值后,計算并顯示和值。 其代碼如下: 加數: 被加數: 和值為:對于例5-2,利用JSP訪問JavaBea

14、n的show.jsp頁面其代碼如下:【說明】(1)為c對象的屬性賦值: 等價于 (2)顯示屬性值: 等價于 5.2.4 訪問訪問JavaBean方法方法 調用調用JavaBean業(yè)務處理方法業(yè)務處理方法 在例5-2 show.jsp頁面中,使用JSP動作標簽訪問JavaBean的,對于show.jsp頁面中,可以通過程序代碼(腳本)直接訪問JavaBean,其代碼如下:5.2.5 案例案例 基于基于JavaBean+JSP求任意兩數代數和求任意兩數代數和 對于例5-2分別給出了利用JSP動作標簽和JSP腳本代碼對Javabean對象的創(chuàng)建及其屬性值的訪問。 但是在show.jsp中都存在JSP

15、腳本代碼,這不是JSP程序所提倡的,下面,重新設計例5-2,使兩個頁面中都不出現JSP腳本代碼?!靖倪M思想】需要改進JavaBean類Add.java的設計,該類需要設置3個屬性,加數、被加數、和值,并通過和值屬性的get/set方法在show.jsp頁面中,設置該屬性值并顯示屬性值?!緦崿F】(1)重新設計實現數據求和的JavaBean類Add.Java。(2)提交整數的JSP頁面(input.jsp),代碼不變。(3)計算并顯示計算結果的show.jsp。代碼如下:5.3 多個多個JSP頁面共享頁面共享JavaBean 在JSP中,對于動作標記可以使用scope屬性來指定bean存儲的位置(

16、作用域),可以讓多個JSP頁面(或多個Servlet或Servlet與JSP)共享數據。本節(jié)主要內容:5.3.1 共享 JavaBean的創(chuàng)建5.3.2 案例網頁計數器JavaBean的設計與使用5.3.1 共享共享JavaBean的創(chuàng)建的創(chuàng)建共享JavaBean的創(chuàng)建格式: 其中,屬性scope的取值有四個: page:頁面范圍 request:請求范圍 session:會話范圍 application:應用范圍。5.3.1 共享共享JavaBean的創(chuàng)建的創(chuàng)建1page共享: 默認值,使用非共享(作用域為頁面)的bean。2. request共享: 共享作用域為請求的bean。處理當前請求

17、的過程中,bean對象應存儲在request對象中,可以通過getAttribute訪問到它。3session共享: 共享作用域為會話的bean。bean會被存儲在與當前請求關聯的session中,和普通的會話對象一樣,可以使用getAttribute訪問到它們。4. application共享: 共享作用域為應用(即作用域為ServletContext)的bean。Bean將存儲在application中,由同一Web應用中的所有JSP共享,可以使用getAttribute訪問到它們。5.3.2 案例案例 網頁計數器網頁計數器JavaBean的設計與使用的設計與使用【例5-3】設計一個Jav

18、aBean記載網頁的訪問數量,在動態(tài)頁面中訪問該JavaBean,實現網頁的計數。假設要統(tǒng)計兩個網頁總共的訪問量?!痉治觥吭搯栴}需要統(tǒng)計網頁訪問次數,在JavaBean中有計數屬性,在頁面被訪問時,該計數器自動增1,同時要存放該數值,所以,在被訪問頁面需要創(chuàng)建apllication范圍的一個JavaBean對象。 為了體現不同頁面對apllication范圍的JavaBean對象的共享,這里設計兩個頁面程序counter1.jsp和counter2.jsp?!驹O計】該問題,需要三個組件(一個javaBean,兩個jsp),即: 具有統(tǒng)計功能的JavaBean。 獲取Javabean中的計數屬性

19、的值的JSP頁面:counter1.jsp 顯示結果的JSP頁面:counter2.jsp。 【實現】(1)設計記載網頁訪問數量的JavaBean:Count.java(2)第1個需要計數的網頁(counter1.jsp)中訪問JavaBean對象(3)第2個需要計數的網頁(counter2.jsp)中訪問JavaBean對象代碼如下5.4 綜合案例綜合案例 數據庫訪問數據庫訪問JavaBean的設計的設計【例5-4】數據庫操作在一個Web應用程序中的后臺處理中占有很大的比重,本例設計一組JavaBean封裝數據庫的基本操作,供上層模塊調用,提高程序的復用性和可移植性?!痉治觥考僭O操作的數據庫名是test,表格是user(userid,username,sex),封裝的基本操作是記錄的添加、修改、查詢全部、按userid查找用戶、按userid刪除用戶?!驹O計】該案例需要設計以下組件:(1)數據庫test及其數據庫表user。(2)在類路徑(src)下建立屬性文件perties,存放數據庫的基本信息,這樣做的好處是數據庫信息發(fā)生變化時只需要修改該文件,不用重新編譯代碼。(3)建立一個獲取連接和釋放資源的工具類JdbcUtil.java。(4)建立類User.java實現記錄信息對象化,體現面向對象程序設計思想。(5)建立類UserDao.java封裝基

溫馨提示

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

最新文檔

評論

0/150

提交評論