第八章-JSP和JavaBean課件_第1頁
第八章-JSP和JavaBean課件_第2頁
第八章-JSP和JavaBean課件_第3頁
第八章-JSP和JavaBean課件_第4頁
第八章-JSP和JavaBean課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章JSP和JavaBean

本章將詳細(xì)介紹什么是JavaBean,以及如何定義JavaBean。還將介紹如何在JSP中調(diào)用JavaBean,如何設(shè)置并獲得JavaBean屬性以及設(shè)置JavaBean的范圍,最后還將介紹如何移除JavaBean。通過本章的學(xué)習(xí),讀者應(yīng)該能夠完成如下幾個目標(biāo)。熟練掌握定義JavaBean

熟練掌握在JSP中調(diào)用JavaBean

熟練掌握設(shè)置并獲得JavaBean屬性熟練掌握設(shè)置JavaBean的范圍熟練掌握移除JavaBean8.1.1JavaBean簡介JavaBean是為Java語言設(shè)計(jì)的軟件組件模型,具有可重復(fù)使用和跨平臺的特點(diǎn)??梢酝ㄟ^JavaBean來封裝業(yè)務(wù)邏輯,進(jìn)行數(shù)據(jù)庫操作等。從而很好的實(shí)現(xiàn)業(yè)務(wù)邏輯和前后臺程序的分離。

JavaBean其實(shí)就是一個簡單的Java類,這也就意味著,Java類的一切特征,JavaBean也都具有。JavaBean同樣可以使用封裝、繼承、多態(tài)等特性。

JavaBean可以分為兩類,一類是有用戶接口(UI)的JavaBean,一類是沒有用戶接口的JavaBean。一般在JSP中使用的都是沒有用戶接口的JavaBean,因此本章所介紹的JavaBean都是指沒有用戶接口的JavaBean。這類JavaBean只是簡單的進(jìn)行業(yè)務(wù)封裝,如數(shù)據(jù)運(yùn)算和處理、數(shù)據(jù)庫操作等。8.1.1JavaBean簡介

一個標(biāo)準(zhǔn)的JavaBean應(yīng)該具有如下幾個特點(diǎn)。1、JavaBean必須是一個公開的類,也就是說JavaBean的類訪問權(quán)限必須是public的。2、JavaBean必須具有一個無參數(shù)的構(gòu)造方法。如果在JavaBean中定義了自定義的有參構(gòu)造方法,就必須添加一個無參數(shù)構(gòu)造方法,否則將無法設(shè)置屬性;如果沒有定義自定義的有參構(gòu)造方法,則可以利用編譯器自動添加的無參構(gòu)造方法。3、JavaBean一般將屬性設(shè)置成私有的,通過使用getXXX()方法和setXXX()方法來進(jìn)行屬性的取得和設(shè)置。8.1.2定義JavaBean02 //一個簡單的JavaBean示例03 publicclassUserBean{04 //用戶名屬性05 privateStringusername;06 //用戶密碼屬性08 privateStringpassword;08 //獲得用戶名09 publicStringgetUsername(){10 returnusername;11 }12 //設(shè)置用戶名13 publicvoidsetUsername(Stringusername){14 this.username=username;15 }16 //獲得用戶密碼18 publicStringgetPassword(){18 returnpassword;19 }20 //設(shè)置用戶密碼21 publicvoidsetPassword(Stringpassword){22 this.password=password;23 }24 }聲明了該類的訪問權(quán)限為Public,符合JavaBean定義的第一個特點(diǎn)。代碼中沒有定義自定義的有參構(gòu)造方法,符合JavaBean定義的第二個特點(diǎn)。JavaBean中的兩個屬性,其訪問級別為private,然后通過添加相應(yīng)的getXXX()方法和setXXX()方法來進(jìn)行屬性的取得和設(shè)置。符合JavaBean定義的第三個特點(diǎn)8.1.3在JSP中調(diào)用JavaBean在JSP中調(diào)用JavaBean,有如下兩個優(yōu)點(diǎn)。1、提高代碼的可復(fù)用性。對于通常使用的業(yè)務(wù)邏輯代碼,如數(shù)據(jù)運(yùn)算和處理、數(shù)據(jù)庫操作等,可以封裝到JavaBean中。在JSP文件中可以多次的調(diào)用JavaBean中的方法來實(shí)現(xiàn)快速的程序開發(fā)。2、將HTML代碼和Java代碼進(jìn)行分離,程序利于開發(fā)維護(hù)。將業(yè)務(wù)邏輯進(jìn)行封裝,使得業(yè)務(wù)邏輯代碼和顯示代碼想分離,不會互相干擾。避免了代碼有多有復(fù)雜的問題,方便了日后的維護(hù)。要想要JSP中調(diào)用JavaBean,就需要使用到<jsp:useBean>動作指令,其語法格式如下。<jsp:useBeanid="對象名稱"scope="儲存范圍"class="類名"></jsp:useBean>其中id屬性表示該JavaBean實(shí)例化后的對象名稱。scope屬性用來指定該JavaBean的范圍,也就是指JavaBean實(shí)例化后的對象儲存范圍。范圍的取值有如下四種,分別是page、request、session和application。class屬性用來指定JavaBean的類名,這里所指的類名包括包名和類名。調(diào)用JavaBean的示例<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>通過useBean動作指令調(diào)用JavaBean</title></head><body><%--通過useBean動作指令調(diào)用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%//設(shè)置User的usernamen屬性

user.setUsername("James");

//設(shè)置User的password屬性

user.setPassword("1234");//打印輸出User的usernamen屬性

out.println("用戶名:"+user.getUsername()+"<br>");//打印輸出User的password屬性

out.println("用戶名:"+user.getPassword());%></body></html>通過<jsp:useBean>指令調(diào)用名為UserBean的JavaBean,并設(shè)置其實(shí)例化對象名為user,其存儲范圍為Page范圍。user.setUsername(“James”)和user.setPassword(“1234”)語句分別設(shè)置其屬性值。out.println("用戶名:"+user.getUsername()+"<br>");out.println("用戶名:"+user.getPassword());通過實(shí)例化對象名user分別獲得其屬性并輸出在頁面上。8.2設(shè)置JavaBean屬性

JSP中提供了一個<jsp:setProperty>動作指令來設(shè)置JavaBean屬性,其有如下四種語法格式。<jsp:setPropertyname="實(shí)例化對象名"property="*"/><jsp:setPropertyname="實(shí)例化對象名"property="屬性名稱"/><jsp:setPropertyname="實(shí)例化對象名"property="屬性名稱"param="參數(shù)名稱"/><jsp:setPropertyname="實(shí)例化對象名"property="屬性名稱"value="屬性值"/>其中name屬性使用設(shè)置實(shí)例化對象名,和<jsp:useBean>中的id屬性保持一致。property屬性用來指定JavaBean屬性名稱。param屬性用來指定接受參數(shù)名稱,value屬性用來指定屬性值。8.2.1根據(jù)所有參數(shù)設(shè)置JavaBean屬性第一種<jsp:setProperty>動作指令用來根據(jù)所有參數(shù)設(shè)置JavaBean屬性,其語法格式如下。<jsp:setPropertyname="實(shí)例化對象名"property="*"/>其中“*”表示根據(jù)表單傳遞的所有參數(shù)來設(shè)置JavaBean的屬性。比如通過表單傳遞了兩個參數(shù),如username和password,這時就可以自動的對JavaBean中的username屬性以及password屬性進(jìn)行賦值。這里必須注意的是,表單的參數(shù)必須和JavaBean中的屬性名稱保持大小寫一致,否則無法進(jìn)行賦值操作。根據(jù)參數(shù)設(shè)置JavaBean屬性的示例。該實(shí)例包含兩個實(shí)例,一個是用來傳遞參數(shù)的用戶表單useform.jsp,一個是設(shè)置JabaBean屬性頁面。Useform.jsp<html><head><title>用戶表單</title></head><body><center><fontsize=4color=blue>用戶表單</font></center><hr><formmethod="post"action="setpropertyDemo.jsp"><fontcolor=green>

用戶名:<inputtype=textname="username"size=10maxlength=10><br>

密碼:<inputtype=textname="password"size=10maxlength=10><br><inputtype=submitvalue="提交"><inputtype=resetvalue="清除"></form></font></body></html>setPropertyDemo.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>設(shè)置JavaBean的屬性</title></head><body><%--通過useBean動作指令調(diào)用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根據(jù)所有的參數(shù)設(shè)置JavaBean中的屬性--%><jsp:setPropertyname="user"property="*"/>//打印輸出User的usernamen屬性

out.println("用戶名:"+user.getUsername()+"<br>");//打印輸出User的password屬性

out.println(“用戶密碼:"+user.getPassword());%></body></html>通過<jsp:useBean>指令調(diào)用名為UserBean的JavaBean,并設(shè)置其實(shí)例化對象名為user,其存儲范圍為Page范圍。<jsp:setPropertyname=“user”property=“*”/>動作指令來根據(jù)所有參數(shù)設(shè)置JavaBean屬性。out.println("用戶名:"+user.getUsername()+"<br>");out.println("用戶名:"+user.getPassword());通過實(shí)例化對象名user分別獲得其屬性并輸出在頁面上。8.2.2根據(jù)指定參數(shù)設(shè)置JavaBean屬性第二種<jsp:setProperty>動作指令用來根據(jù)指定參數(shù)設(shè)置JavaBean屬性,其語法格式如下。<jsp:setPropertyname=“實(shí)例化對象名”

property=“屬性名稱"/>第二種<jsp:setProperty>動作指令相比第一種<jsp:setProperty>動作指令具有更好的彈性。第一種<jsp:setProperty>動作指令要求設(shè)置所有的參數(shù),而第二種<jsp:setProperty>動作指令可以用來設(shè)置指定的參數(shù)。比如通過表單傳遞了兩個參數(shù),如username和password,這時就可以指定只為JavaBean的username屬性賦值,也可以指定只為JavaBean的password屬性賦值。setPropertyDemo2.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>設(shè)置JavaBean的屬性</title></head><body><%--通過useBean動作指令調(diào)用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根據(jù)所有的參數(shù)設(shè)置JavaBean中的屬性--%><jsp:setPropertyname="user"property=“username"/>//打印輸出User的usernamen屬性

out.println("用戶名:"+user.getUsername()+"<br>");//打印輸出User的password屬性

out.println(“用戶密碼:"+user.getPassword());%></body></html>通過<jsp:useBean>指令調(diào)用名為UserBean的JavaBean,并設(shè)置其實(shí)例化對象名為user,其存儲范圍為Page范圍。<jsp:setPropertyname="user"property=“username"/>動作指令來根據(jù)指定參數(shù)設(shè)置JavaBean屬性。out.println("用戶名:"+user.getUsername()+"<br>");out.println("用戶名:"+user.getPassword());通過實(shí)例化對象名user分別獲得其屬性并輸出在頁面上。8.2.3根據(jù)指定參數(shù)設(shè)置指定JavaBean屬性第三種<jsp:setProperty>動作指令用來根據(jù)指定參數(shù)設(shè)置指定JavaBean屬性,其語法格式如下。<jsp:setPropertyname="實(shí)例化對象名"property="屬性名稱"param="參數(shù)名稱"/>第三種<jsp:setProperty>動作指令相比前兩種<jsp:setProperty>動作指令更加具有彈性。前面兩種<jsp:setProperty>動作指令都需要設(shè)置參數(shù)和JavaBean屬性必須相同,而且必須保證大小寫一致。而第三種<jsp:setProperty>動作指令沒有此限制,因?yàn)榭梢酝ㄟ^其指定需要設(shè)置的JavaBean屬性。setPropertyDemo3.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>設(shè)置JavaBean的屬性</title></head><body><%--通過useBean動作指令調(diào)用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根據(jù)所有的參數(shù)設(shè)置JavaBean中的屬性--%><jsp:setPropertyname="user"property=“username“param=“username”/><jsp:setPropertyname="user"property=“password“param=“password”/>//打印輸出User的usernamen屬性

out.println("用戶名:"+user.getUsername()+"<br>");//打印輸出User的password屬性

out.println(“用戶密碼:"+user.getPassword());%></body></html>通過<jsp:useBean>指令調(diào)用名為UserBean的JavaBean,并設(shè)置其實(shí)例化對象名為user,其存儲范圍為Page范圍。<jsp:setPropertyname="user"property=“username“param=“username”/><jsp:setPropertyname=“user”property=“password“param=“password”/>上述兩條動作指令用username和password來分別設(shè)置JavaBean的username和password兩個屬性。out.println("用戶名:"+user.getUsername()+"<br>");out.println("用戶名:"+user.getPassword());通過實(shí)例化對象名user分別獲得其屬性并輸出在頁面上。8.2.4設(shè)置指定JavaBean屬性為指定值第四種<jsp:setProperty>動作指令用來設(shè)置指定JavaBean屬性為指定值,其語法格式如下。<jsp:setPropertyname="實(shí)例化對象名"property="屬性名稱"value="屬性值"/>第四種<jsp:setProperty>動作指令相比前三種<jsp:setProperty>動作指令更加具有彈性。前面三種<jsp:setProperty>動作指令都需要接受表單參數(shù),而第四種可以根據(jù)需要動態(tài)的設(shè)置JavaBean屬性值。setPropertyDemo4.jsp<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>設(shè)置JavaBean的屬性</title></head><body><%--通過useBean動作指令調(diào)用JavaBean--%><jsp:useBeanid="user"scope="page"class="com.javaweb.ch08.UserBean"></jsp:useBean><%--根據(jù)所有的參數(shù)設(shè)置JavaBean中的屬性--%><jsp:setPropertyname="user"property=“username“value=“abc”/><jsp:setPropertyname="user"property=“password“value=“123”/>//打印輸出User的usernamen屬性

out.println("用戶名:"+user.getUsername()+"<br>");//打印輸出User的password屬性

out.println(“用戶密碼:"+user.getPassword());%></

溫馨提示

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

最新文檔

評論

0/150

提交評論