![JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第1頁(yè)](http://file4.renrendoc.com/view3/M00/28/2F/wKhkFmaH-PCADl3wAAB6Jvvh2MU384.jpg)
![JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第2頁(yè)](http://file4.renrendoc.com/view3/M00/28/2F/wKhkFmaH-PCADl3wAAB6Jvvh2MU3842.jpg)
![JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第3頁(yè)](http://file4.renrendoc.com/view3/M00/28/2F/wKhkFmaH-PCADl3wAAB6Jvvh2MU3843.jpg)
![JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第4頁(yè)](http://file4.renrendoc.com/view3/M00/28/2F/wKhkFmaH-PCADl3wAAB6Jvvh2MU3844.jpg)
![JavaWeb及其框架技術(shù) 課件 第3章 JSP與JavaBean_第5頁(yè)](http://file4.renrendoc.com/view3/M00/28/2F/wKhkFmaH-PCADl3wAAB6Jvvh2MU3845.jpg)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信號(hào)工復(fù)習(xí)題(含參考答案)
- 2025年全球過(guò)濾器行業(yè)市場(chǎng)調(diào)研與發(fā)展前景預(yù)測(cè)分析報(bào)告
- 生物化學(xué)在醫(yī)療設(shè)備研發(fā)中的作用
- 皮膚衰老與抗衰老皮膚護(hù)理策略
- 湖北科技職業(yè)學(xué)院《數(shù)字影像綜合創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東石油化工學(xué)院《載重與平衡》2023-2024學(xué)年第二學(xué)期期末試卷
- 東營(yíng)職業(yè)學(xué)院《中國(guó)古代歷史與文化》2023-2024學(xué)年第二學(xué)期期末試卷
- 電子商務(wù)科技驅(qū)動(dòng)的商業(yè)新模式
- 揭陽(yáng)半導(dǎo)體設(shè)備項(xiàng)目評(píng)估報(bào)告
- 知識(shí)產(chǎn)權(quán)培訓(xùn)提升員工保護(hù)意識(shí)
- YB∕T 5363-2016 裝飾用焊接不銹鋼管
- 江蘇省2023年中職職教高考文化統(tǒng)考語(yǔ)文
- 客戶(hù)投訴處理情況總結(jié)范文
- 危險(xiǎn)化學(xué)品押運(yùn)員培訓(xùn)
- 干細(xì)胞市面推廣方案
- 國(guó)家基本藥物知識(shí)培訓(xùn)課件
- QCT 291-2023 汽車(chē)機(jī)械式分動(dòng)器總成性能要求和臺(tái)架試驗(yàn)方法 (正式版)
- 浙教版勞動(dòng)八年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)
- 煤礦井下安全避險(xiǎn)六大系統(tǒng)建設(shè)完善基本規(guī)范
- Photoshop 2022從入門(mén)到精通
- 盤(pán)扣式腳手架培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論