JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第1頁(yè)
JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第2頁(yè)
JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第3頁(yè)
JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第4頁(yè)
JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章JSP與JavaBean理解什么是JavaBean掌握兩種JavaBean的封裝類(lèi)掌握在JSP頁(yè)面上如何使用JavaBean掌握<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>動(dòng)作的用法學(xué)習(xí)目標(biāo)JavaBean是Java開(kāi)發(fā)語(yǔ)言中一個(gè)可以重復(fù)使用的軟件組件,本質(zhì)上是一種特殊的Java類(lèi),它通常具有如下特點(diǎn)。(1)JavaBean的類(lèi)必須是公共的(public)。(2)它必須具有一個(gè)公共的、無(wú)參的構(gòu)造方法。(3)屬性必須私有的(private)。(4)可以有一系列的獲取方法(getter)或設(shè)置方法(

setter)去獲取或設(shè)置JavaBean的屬性,通常屬性名的首字母應(yīng)大寫(xiě)。

(5)對(duì)于boolean類(lèi)型的成員變量,允許使用is方法代替上面的get方法。3.1JavaBean的定義JavaBean可分為兩種:一種是傳統(tǒng)應(yīng)用中用于實(shí)現(xiàn)用戶(hù)界面(UI,UserInterface)的JavaBean;還有一種是主要負(fù)責(zé)封裝數(shù)據(jù)或封裝業(yè)務(wù)的JavaBean,在Web應(yīng)用程序中使用的JavaBean就是這種。3.2.1封裝數(shù)據(jù)的JavaBean封裝數(shù)據(jù)的JavaBean負(fù)責(zé)數(shù)據(jù)的存取,需要設(shè)置多個(gè)屬性及其屬性值的存取方法。如果屬性名字是Xxx,則getXxx方法用于獲取屬性值;setXxx用于設(shè)置或更改屬性值。3.2兩種JavaBean的封裝類(lèi)3.2.1封裝數(shù)據(jù)的JavaBean例3-1定義一個(gè)簡(jiǎn)單的JavaBean。新建一個(gè)名為javaWeb的Web項(xiàng)目,在javaWeb工程的文件夾src中創(chuàng)建一個(gè)名為model的包,在包下定義一個(gè)名為User的類(lèi),這就是一個(gè)JavaBean,此類(lèi)中定義了五個(gè)屬性:userId、userName、password、role、status,并提供了公共的setter方法和getter方法供外界訪問(wèn)這些屬性。代碼如下。3.2兩種JavaBean的封裝類(lèi)3.2.1封裝數(shù)據(jù)的JavaBean3.2兩種JavaBean的封裝類(lèi)packagemodel;

publicclassUser{

privateintuserId;

privateStringuserName;

privateStringpassword;

privateintrole;//角色1普通2管理員

privatebooleanstatus;

publicintgetUserId(){

returnuserId;

}

publicvoidsetUserId(intuserId){

this.userId=userId;

}

publicStringgetUserName(){

returnuserName;

}

publicvoidsetUserName(StringuserName){

this.userName=userName;

}

publicintgetRole(){

returnrole;

}

publicvoidsetRole(introle){

this.role=role;

}

publicbooleangetStatus(){

returnstatus;

}

publicvoidsetStatus(booleanstatus){

this.status=status;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringtoString(){//列出部分?jǐn)?shù)據(jù)

return""+userId+","+userName+","+password+"\n";

}

}3.2.2封裝業(yè)務(wù)的JavaBean封裝業(yè)務(wù)的JavaBean是完成一定運(yùn)算和操作功能的業(yè)務(wù)類(lèi),主要包含一些實(shí)現(xiàn)特定功能的方法,通常與一個(gè)封裝數(shù)據(jù)的JavaBean對(duì)應(yīng)。就上述封裝數(shù)據(jù)的JavaBean來(lái)說(shuō),封裝業(yè)務(wù)的JavaBean用于操作封裝數(shù)據(jù)。比如要將表單中的用戶(hù)輸入的值送入數(shù)據(jù)庫(kù)中相應(yīng)的字段,或者將數(shù)據(jù)庫(kù)中的字段值取出并顯示到網(wǎng)頁(yè)中,此時(shí)需要一個(gè)專(zhuān)門(mén)的JavaBean與封裝數(shù)據(jù)的JavaBean配合完成操作。3.2兩種JavaBean的封裝類(lèi)3.2.2封裝業(yè)務(wù)的JavaBean例3-2定義封裝業(yè)務(wù)的JavaBean,負(fù)責(zé)數(shù)據(jù)庫(kù)連接及數(shù)據(jù)庫(kù)中數(shù)據(jù)操作的業(yè)務(wù)流程(1)在sample的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為userinfo的表,表結(jié)構(gòu)如下圖所示。(2)向該表中插入若干條數(shù)據(jù)。(3)在javaWeb工程的文件夾src中創(chuàng)建一個(gè)名為util的包,在包下定義一個(gè)名為ConnectionManager的類(lèi),詳細(xì)代碼見(jiàn)教材例3-2。3.2兩種JavaBean的封裝類(lèi)3.2.2封裝業(yè)務(wù)的JavaBean例3-2定義封裝業(yè)務(wù)的JavaBean,負(fù)責(zé)數(shù)據(jù)庫(kù)連接及數(shù)據(jù)庫(kù)中數(shù)據(jù)操作的業(yè)務(wù)流程(4)在javaWeb工程的文件夾src中創(chuàng)建一個(gè)名為dao的包,在包下定義一個(gè)名為UserDao的類(lèi),詳細(xì)代碼見(jiàn)教材例3-2。主要封裝的方法如下圖:3.2兩種JavaBean的封裝類(lèi)類(lèi):UserDAOintaddUserifno(Useruser)intdelUserinfo(intid)updateUserifno(Useruser)List<User>findByUserName(StringuserName)List<User>listAll()UserfindByUserId(intid)UserfindByLoginname(StringuserName)在JSP的開(kāi)發(fā)中使用JavaBean可以減少重復(fù)代碼,使整個(gè)JSP代碼的開(kāi)發(fā)更簡(jiǎn)潔。JSP提供了三個(gè)關(guān)于JavaBean組件的動(dòng)作元素,即JSP標(biāo)簽,它們分別為<jsp:useBean>標(biāo)簽、<jsp:setProperty>標(biāo)簽和<jsp:getProperty>標(biāo)簽。<jsp:setProperty>標(biāo)簽:用于在JSP頁(yè)面中設(shè)置一個(gè)JavaBean組件的屬性。<jsp:getProperty>標(biāo)簽:用于在JSP頁(yè)面中獲取一個(gè)JavaBean組件的屬性。3.3JavaBean在JSP中的應(yīng)用3.3.1<jsp:useBean>標(biāo)簽<jsp:useBean>

標(biāo)簽用于在JSP頁(yè)面中查找或?qū)嵗粋€(gè)JavaBean組件,語(yǔ)法格式:<jsp:useBeanid="JavaBean實(shí)例名"class="類(lèi)名”scope=”范圍”/>屬性id表示定義的JavaBean的實(shí)例名,屬性class表示定義的JavaBean類(lèi)名。屬性scope是定義的JavaBean實(shí)例的作用域,可有4個(gè)取值,分別對(duì)應(yīng)4個(gè)范圍:Page:表示JavaBean實(shí)例在當(dāng)前頁(yè)面有效。Application:表示JavaBean實(shí)例在項(xiàng)目的各個(gè)頁(yè)面都有效。session:表示JavaBean實(shí)例在本次的會(huì)話(huà)中有效。request:表示JavaBean實(shí)例在本次的請(qǐng)求中有效。當(dāng)定義了一個(gè)JavaBean時(shí)就可以為其屬性賦值,可以使用<jsp:setProperty>動(dòng)作來(lái)設(shè)置或修改JavaBean的屬性值,也可以使用<jsp:getProperty>動(dòng)作來(lái)獲取屬性的值。3.3JavaBean在JSP中的應(yīng)用3.3.2<jsp:setProperty>通過(guò)使用<jsp:setProperty>,為已經(jīng)實(shí)例化的JavaBean的屬性賦值,語(yǔ)法格式:<jsp:setPropertyname="JavaBean實(shí)例名"property="屬性名"value="屬性值"/>當(dāng)property="*"時(shí),將前端表單的所有標(biāo)簽與JavaBean屬性一一對(duì)比,若標(biāo)簽的name與屬性名相同,則將標(biāo)簽的值賦給JavaBean實(shí)例中對(duì)應(yīng)的屬性;當(dāng)property為指定的某個(gè)具體屬性時(shí),JavaBean實(shí)例中只會(huì)有該屬性被賦值;當(dāng)property為指定的某個(gè)具體屬性,value為指定的一個(gè)值時(shí),則是給JavaBean實(shí)例中的該屬性賦指定的這個(gè)值,此時(shí)前端的對(duì)應(yīng)標(biāo)簽的值不會(huì)賦給JavaBean實(shí)例的對(duì)應(yīng)屬性。3.3JavaBean在JSP中的應(yīng)用3.3.3<jsp:getProperty>通過(guò)使用<jsp:getProperty>可以獲取指定的JavaBean的值,語(yǔ)法格式如下:<jsp:getPropertyname=“JavaBean實(shí)例名”property=“屬性名”/>例3-3將工程JavaWeb的web目錄下的index.jsp文件進(jìn)行修改,代碼如下。3.3JavaBean在JSP中的應(yīng)用<%@pageimport="model.User"%>

<%@pagecontentType="text/html;charset=UTF-8"language="java"%>

<%@pageimport="java.util.*"%>

<html>

<head>

<title>$Title$</title>

<jsp:useBeanid="dao"class="dao.UserDao"scope="request"/>

</head>

<body>

<%

Useruser=dao.findByLoginname("tom");

%>

<inputtype="text"name="userId"value="<%=user.getUserId()%>"/><inputtype="text"name="userName"value="<%=user.getUserName()%>"/><inputtype="text"name="password"value="<%=user.getPassword()%>"/>

$END$

</body>

</html>

在index.jsp頁(yè)面中使用<jsp:useBean>標(biāo)簽實(shí)例化了UserDao對(duì)象。啟動(dòng)Tomcat服務(wù)器,打開(kāi)“index.jsp”頁(yè)面,在該頁(yè)面的第一個(gè)文本框中顯示“aaa”;第二個(gè)文本框顯示表userinfo中是否有username的值為“tom”的記錄,若有,則在此文本框中顯示“tom”,若沒(méi)有,則顯示“null”;第三個(gè)文本框中顯示表userinfo中username的值為“tom”的記錄中字段userId、userName及password的值。運(yùn)行結(jié)果如下圖所示。3.3JavaBean在JSP中的應(yīng)用3.3.3<jsp:getProperty>例3-33.4用戶(hù)信息管理示例

前面封裝了數(shù)據(jù)實(shí)體類(lèi)User與數(shù)據(jù)訪問(wèn)類(lèi)UserDao,如何在頁(yè)面中使用這些對(duì)象?我們來(lái)做一個(gè)JSP與JavaBean結(jié)合使用的示例。例3-4在JSP頁(yè)面中實(shí)現(xiàn)對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行增加、刪除、修改及查詢(xún)操作。詳細(xì)步驟見(jiàn)教材例3-43.5MVC設(shè)計(jì)模式

MVC(ModelViewController)是XeroxPARC在二十世紀(jì)八十年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,指的就是模型-視圖-控制器。MVC是Model、View、Controller三個(gè)單詞首字母的縮寫(xiě)。它是一種成熟的設(shè)計(jì)模式,并不是Java平臺(tái)獨(dú)有的,它將一個(gè)應(yīng)用程序在邏輯上視為三層:負(fù)責(zé)用戶(hù)界面的為視圖層(View),負(fù)責(zé)程序流程控制的為控制器(Controller),負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行建模的為模型(Model),如下圖所示。3.5MVC設(shè)計(jì)模式在JavaWeb的開(kāi)發(fā)設(shè)計(jì)中,產(chǎn)生了一些設(shè)計(jì)模式,最典型的就是“JSP+JavaBean”的模式,這種模式將顯示和業(yè)務(wù)邏輯分開(kāi)。J

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論