版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章
JSP與JavaBean本章思維導圖本章目標了解JavaBean特性優(yōu)勢掌握JavaBean的種類和規(guī)范掌握JavaBean類的創(chuàng)建掌握在JSP中使<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>三個動作元素JavaBean是一種特殊的Java類,以封裝和重用為目的,在類的設(shè)計上遵從一定的規(guī)范,以供其它組件根據(jù)這種規(guī)范來調(diào)用。JavaBean最大的優(yōu)勢在于重用,同時它又具有以下特性:易于維護、使用、編寫;封裝了復雜的業(yè)務(wù)邏輯;可移植性;便于傳輸,既可用于本地也可用于網(wǎng)絡(luò)傳輸。JavaBean簡介JavaBean可分為兩種:一種是有用戶界面(UI,UserInterface)的JavaBean,例如一些GUI組件(按鈕、文本框、報表組件等);另一種是沒有用戶界面、主要負責封裝數(shù)據(jù)、業(yè)務(wù)處理的JavaBean。JSP通常訪問的是后一種JavaBean。JSP與JavaBean搭配使用,具有以下優(yōu)勢:JSP頁面中的HTML代碼與Java代碼分離,便于頁面設(shè)計人員和Java編程人員的分工與維護;使JSP更加側(cè)重于生成動態(tài)網(wǎng)頁,事務(wù)處理由JavaBean來完成,使系統(tǒng)更趨于組件化、模塊化。JavaBean簡介JavaBean的這些優(yōu)勢,使系統(tǒng)具有了更好的健壯性和靈活性,使得JSP+JavaBean和JSP+Servlet+JavaBean的組合設(shè)計模式成為目前開發(fā)JavaWeb應(yīng)用的主流模式。JavaBean簡介一個標準的JavaBean需要遵從以下規(guī)范:JavaBean是一個公開的(public)類,以便被外部程序訪問;具有一個無參的構(gòu)造方法(即一般類中默認的構(gòu)造方法),以便被外部程序?qū)嵗瘯r調(diào)用;提供setXxx()方法和getXxx()方法,以便讓外部程序設(shè)置和獲取其屬性。凡是符合上述規(guī)范的Java類,都可以被稱為JavaBean。JavaBean規(guī)范【示例】一個普通JavaBeanJavaBean示例publicclassDemoBean{ privateStringuserName; privateintage; privateDatebirthday; privatebooleanmarried; privateString[]hobby; publicStringgetUserName(){ returnuserName; } publicvoidsetUserName(StringuserName){ this.userName=userName; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicDategetBirthday(){ returnbirthday; } publicvoidsetBirthday(Datebirthday){ this.birthday=birthday; } publicbooleanisMarried(){ returnmarried; } publicvoidsetMarried(booleanmarried){ this.married=married; } publicString[]getHobby(){ returnhobby; } publicvoidsetHobby(String[]hobby){ this.hobby=hobby; }}JavaBean中的setXxx()方法和getXxx()方法也被稱為setter方法和getter方法,是針對JavaBean方法的一種命名方式。方法的名稱由字符“set+屬性名”和“get+屬性名”構(gòu)成,“屬性名”是將JavaBean的屬性名稱首字母大寫后得來。例如:名稱為“userName”的JavaBean屬性,對應(yīng)的setter和getter方法為:“setUserName()”和“getUserName()”。JavaBean通過這種方法的命名規(guī)范,以及對類的訪問權(quán)限和構(gòu)造函數(shù)的要求,使得外部程序能夠通過反射機制來實例化JavaBean和查找到這些方法,從而調(diào)用這些方法來設(shè)置和獲取JavaBean對象的屬性。JavaBean規(guī)范在JavaBean中,對于屬性的定義也不同于普通類中的屬性定義。JavaBean的屬性是指setter和getter方法名中所包含的屬性名,即使在JavaBean類中沒有定義此名稱的實例變量,也可稱為JavaBean的屬性。這種定義方式擴展了屬性的定義,融入了對JavaBean所封裝的業(yè)務(wù)功能狀態(tài)的表示。JavaBean的屬性【示例】封裝商品價格計算的JavaBeanJavaBean的屬性publicclassProductBean{ //商品單價 privatefloatprice; //商品數(shù)量 privateintnum;
publicfloatgetPrice(){ returnprice; } publicvoidsetPrice(floatprice){ this.price=price; } publicintgetNum(){ returnnum; } publicvoidsetNum(intnum){ this.num=num; }
publicdoublegetTotalPrice(){ returnthis.price*this.num; }}JSP提供的訪問JavaBean的3個動作元素<jsp:useBean>:創(chuàng)建或查找JavaBean實例對象<jsp:setProperty>:設(shè)置JavaBean對象的屬性值<jsp:getProperty>:獲取JavaBean對象的屬性值在JSP中使用JavaBean【示例】使用動作元素訪問JavaBean在JSP中使用JavaBean<jsp:useBeanid="product"class="com.zkl.ch06.javabean.ProductBean"/><jsp:setPropertyproperty="price"value="23.5"name="product"/><jsp:setPropertyproperty="num"value="2"name="product"/><jsp:getPropertyproperty="totalPrice"name="product"/>【示例】使用Java腳本訪問JavaBean在JSP中使用JavaBean<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="com.zkl.ch06.javabean.ProductBean"%><%Objectobj=pageContext.getAttribute("product");ProductBeanproduct=null;if(obj==null){ product=newProductBean(); pageContext.setAttribute("product",product,pageContext.PAGE_SCOPE);}product.setPrice(23.5f);product.setNum(2);%><%=product.getTotalPrice()%><jsp:useBean>元素用于在某個指定的作用域范圍內(nèi)查找一個指定名稱的JavaBean對象,如果存在則直接返回該JavaBean對象的引用,如果不存在則實例化一個新的JavaBean對象,并將它按指定的名稱存儲在指定的作用域范圍內(nèi)。<jsp:useBean>元素的語法格式:其中:id屬性用于指定JavaBean對象的引用名稱和其存儲域?qū)傩悦籧lass屬性用于指定JavaBean對象的完整類名;scope屬性用于指定JavaBean對象的存儲域范圍,其取值只能是page、request、session、application四個值中的一個,默認為page。<jsp:useBean>元素<jsp:useBeanid="beanInstanceName"class="package.class" scope="page|request|session|application"/><jsp:setProperty>元素用于設(shè)置JavaBean對象的屬性,相當于調(diào)用JavaBean對象的setter方法。語法其中:name屬性用于指定JavaBean對象的名稱,其值應(yīng)與<jsp:useBean>標簽中的id屬性值相同;property屬性用于指定JavaBean對象的屬性名;value屬性用于指定JavaBean對象的某個屬性的值,可以是一個字符串也可以是一個表達式,它將被自動轉(zhuǎn)換為所要設(shè)置的JavaBean屬性的類型,該屬性可選;param屬性用于將一個請求參數(shù)的值賦給JavaBean對象的某個屬性,它可以將請求參數(shù)的字符串類型的返回值轉(zhuǎn)換為JavaBean屬性所對應(yīng)的類型,該屬性可選。value和param屬性不能同時使用。<jsp:setProperty>元素<jsp:setPropertyname="beanInstanceName"property="propertyName"value="propertyValue"|property="propertyName"param="parameterName"|property="propertyName"|property="*"/>【示例】表示通過value屬性來指定JavaBean對象“product”的“price”屬性的值。其中value屬性的值將被自動轉(zhuǎn)換為與JavaBean對應(yīng)屬性相同的類型?!臼纠勘硎臼褂靡粋€表達式的value屬性值來指定JavaBean對象“product”的“price”屬性的值。<jsp:setProperty>元素<jsp:setPropertyname="product"property="price"value="23.5"/><%floatprice=23.5f;%><jsp:setPropertyname="product"property="price"value="<%=price%>"/><jsp:setProperty>元素還可用于<jsp:useBean>元素起始標簽和終止標簽間,表示在此JavaBean對象實例化時,對其屬性進行初始化?!臼纠坑捎谇短自?lt;jsp:useBean>元素中的<jsp:setProperty>元素只有在實例化JavaBean對象時才被執(zhí)行,因此如果<jsp:useBean>元素所引用的JavaBean對象已經(jīng)存在,嵌套在其中的<jsp:setProperty>元素將不被執(zhí)行,只能在JavaBean對象初始化時執(zhí)行一次。<jsp:setProperty>元素<jsp:useBeanid="product"class="com.zkl.ch06.javabean.ProductBean"><jsp:setPropertyname="product"property="price"value="23.5"/><jsp:setPropertyname="product"property="num"value="2"/></jsp:useBean><jsp:getProperty>元素用于讀取JavaBean對象的屬性,等同于調(diào)用JavaBean對象的getter方法,然后將讀取的屬性值轉(zhuǎn)換成字符串后輸出到響應(yīng)正文中?!菊Z法】其中:name屬性用于指定JavaBean對象的名稱,其值應(yīng)與<jsp:useBean>標簽的id屬性值相同;property屬性用于指定JavaBean對象的屬性名?!臼纠?lt;jsp:getProperty>元素<jsp:getPropertyname="beanInstanceName"prop
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 罕見腫瘤的精準醫(yī)療與個體化治療
- 預算評審質(zhì)量控制制度
- 2026年咸陽市高新一中教師招聘備考題庫及答案詳解(考點梳理)
- 罕見腫瘤的個體化治療治療策略優(yōu)化經(jīng)驗與推廣
- 2025年建筑施工企業(yè)收發(fā)文管理制度
- 出納與財務(wù)制度
- 非稅收入財務(wù)制度
- 養(yǎng)豬小規(guī)模企業(yè)財務(wù)制度
- 餐廳收銀財務(wù)制度
- 地產(chǎn)項目財務(wù)制度
- 2025至2030中國EB病毒檢測行業(yè)標準制定與市場規(guī)范化發(fā)展報告
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責任公司社會成熟人才招聘備考題庫及答案詳解1套
- 2026年浙江高考語文真題試卷+答案
- 2025 年大學人工智能(AI 應(yīng)用)期中測試卷
- 《市場營銷(第四版)》中職完整全套教學課件
- (正式版)DB61∕T 2121-2025 《風力發(fā)電場集電線路設(shè)計規(guī)范》
- 疑難病例討論制度落實常見問題與改進建議
- 創(chuàng)傷性脾破裂的護理
- 蓬深102井鉆井工程(重新報批)項目環(huán)境影響報告表
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級上冊歷史期末復習??贾R點梳理復習提綱(教師版)
評論
0/150
提交評論