




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章JavaBean技術JSP較其他同類語言最強有力的方面就是能夠使用JavaBean組件,JavaBean組件就是利用Java語言編寫的組件,它好比一個封裝好的容器,使用者并不知道其內部是如何構造的,但它卻具有適應用戶要求的功能,每個JavaBean都實現(xiàn)了一個特定的功能,通過合理地組織不同功能的JavaBean,可以快速生成一個全新的應用程序。
如果將一個應用程序比做一間空房間,那么這些JavaBean就好比房間中的家具。組件化技術3引入Javabean的JSP開發(fā)模式用戶Tomcat服務器JSP頁面beanJSP+Javabean的工作模式第
4章JavaBean技術JavaBean概述JavaBean中的屬性JavaBean的應用JavaBean的應用實例
使用JavaBean的最大優(yōu)點就在于它可以提高代碼的重用性,例如正在開發(fā)一個商品信息顯示界面,由于商品信息存放在數(shù)據(jù)庫指定表中,此時需要執(zhí)行連接數(shù)據(jù)庫、查詢數(shù)據(jù)庫、顯示數(shù)據(jù)操作,如果將這些數(shù)據(jù)庫操作代碼都放入JSP頁面中,代碼復雜度可以想象,非編程人員根本無法接受這樣的代碼,這將為開發(fā)帶來極大的不便。編寫一個成功的JavaBean,宗旨是“一次性編寫,任何地方執(zhí)行,任何地方重用”,這正迎合了當今軟件開發(fā)的潮流,“簡單復雜化”,將復雜需求分解成簡單的功能模塊,這些模塊是相對獨立的,可以繼承、重用,這樣為軟件開發(fā)提供了一個簡單、緊湊、優(yōu)秀的解決方案。4.1編寫和使用JavaBeanJavaBean技術特點1.一次性編寫一個成功的JavaBean組件重用時不需要重新編寫,開發(fā)者只需要根據(jù)需求修改和升級代碼即可。2.任何地方執(zhí)行一個成功的JavaBean組件可以在任何平臺上運行,由于JavaBean是基于Java語言編寫的,所以它可以輕易移植到各種運行平臺上。3.任何地方重用一個成功的JavaBean組件能夠被在多種方案中使用,包括應用程序、其他組件、Web應用等。JavaBean的種類
最初,JavaBean主要應用于可視化領域,現(xiàn)在JavaBean更多應用于非可視化領域,并且在服務器端表現(xiàn)出卓越的性能。
JavaBean按功能可分為可視化JavaBean和不可視化JavaBean兩類。(1)可視化JavaBean
可視化JavaBean就是具有GUI圖形用戶界面的JavaBean;不可視JavaBean就是沒有GUI圖形用戶界面的JavaBean,最終對用戶是不可見的,它更多地是被應用到JSP中。JavaBean的種類(2)不可視JavaBean
不可視JavaBean又分為值JavaBean和工具JavaBean。值JavaBean嚴格遵循了JavaBean的命名規(guī)范,通常用來封裝表單數(shù)據(jù),作為信息的容器。
工具JavaBean則可以不遵循JavaBean規(guī)范,通常用于封裝業(yè)務邏輯,數(shù)據(jù)操作等,例如連接數(shù)據(jù)庫,對數(shù)據(jù)庫進行增、刪、改、查和解決中文亂碼等操作。工具JavaBean可以實現(xiàn)業(yè)務邏輯與頁面顯示的分離,提高了代碼的可讀性與易維護性。例如,下面的JavaBean就是一個工具JavaBean,它用來轉換字符串中的“<”與“>”字符。4.1.1
編寫和使用JavaBean
通常一個標準的JavaBean需遵循以下規(guī)范:(1)實現(xiàn)java.io.Serializable接口;(2)是一個公共類,類聲明的方法–public(3)類中必須存在一個無參數(shù)的構造函數(shù)-public;(4)提供對應的setXxx()和getXxx()方法來存取類中的屬性,方法中的“Xxx”為屬性名稱,屬性第一個字母應大寫。(5)若屬性為布爾類型,則可使用isXxx()方法代替getXxx()方法。
【例】circle(p75)JavaBean中的屬性
通常JavaBean中的屬性分為以下4種:(1)簡單屬性(Simple)(2)索引屬性(Indexed)(3)綁定屬性(Bound)(4)約束屬性(Constrained)其中綁定屬性和約束屬性通常在JavaBean的圖形編程中使用,所以在這里不進行介紹,下面來介紹JavaBean中的簡單屬性和索引屬性。JavaBean中的屬性1.簡單屬性(Simple)
簡單屬性就是在JavaBean中對應了簡單的setXxx()和getXxx()方法的變量,在創(chuàng)建JavaBean時,簡單屬性最為常用。在JavaBean中,簡單屬性的getXxx()與setXxx()方法如下:publicvoidsetXxx(typevalue);publictypegetXxx();
其中type表示屬性的數(shù)據(jù)類型,若屬性為布爾類型,則可使用isXXX()方法代替getXxx()方法。
【例5-4】簡單屬性示例JavaBean中的屬性2.索引屬性(Indexed)
需要通過索引訪問的屬性通常稱為索引屬性。如存在一個大小為3的字符串數(shù)組,若要獲取該字符串數(shù)組中指定位置中的元素,需要得知該元素的索引,則該字符串數(shù)組就被稱為索引屬性。
在JavaBean中,索引屬性的getXxx()與setXxx()方法如下:publicvoidsetXxx(type[]value);publictype[]getXxx();publicvoidsetXxx(intindex,typevalue);publictypegetXxx(intindex);4.1.2創(chuàng)建JavaBean
【例】在Eclipse下創(chuàng)建JavaBean
JavaBean實質上就是一種遵循了特殊規(guī)范的Java類,所以創(chuàng)建一個JavaBean,就是在遵循這些規(guī)范的基礎上創(chuàng)建一個Java類。
在前面已經(jīng)多次給出了JavaBean的代碼,所以在這里不再給出代碼進行講解。首先新建一個記事本,然后輸入代碼,最后保存為*.java文件即可完成一個JavaBean的創(chuàng)建。但通常都使用開發(fā)工具進行創(chuàng)建,如Eclipse。使用Eclipse開發(fā)工具創(chuàng)建JavaBean可以使用工具提供的功能自動生成屬性的getXxx()與setXxx()方法,下面介紹如何在Eclipse中創(chuàng)建JavaBean。154.1.3創(chuàng)建與使用bean<jsp:useBeanid="給bean起的名字"class="創(chuàng)建bean的類"scope="bean有效范圍"></jsp:useBean>或<jsp:useBeanid="給bean起的名字"class="創(chuàng)建bean的類"scope="bean有效范圍"/>注意:在JSP頁面中,必須有相應的import指令<%@pageimport=“tom.jiafei.*”%>創(chuàng)建bean的類中要帶有包名16bean的創(chuàng)建和工作機制當某個含有useBean動作標記的JSP頁面被加載執(zhí)行時,JSP引擎首先查找JSP引擎內置pageContext對象中是否含有相同名字和作用域的對象,如果存在,則將此對象的副本分配給JSP頁面,否則,就根據(jù)指定的字節(jié)碼創(chuàng)建一個對象,添加到pageContext對象中,同時分配給客戶。<jsp:useBeanid=“circle”class=“tom.jiafei.Circle”scope=“page”/>17bean的作用域類型有效范圍備注Page當前頁面客戶離開頁面時即釋放該bean,不同用戶的scope取值為page的bean也互不相同Session會話期間會話期間的各個頁面之間可以共享,不同用戶的scope取值為session的bean也互不相同Requestrequest期間不同用戶的scope取值為request的bean也互不相同ApplicationWeb服務目錄下的所有JSP頁面共享不同用戶的scope取值為application的bean都是相同的【例4-1】
【例4-2】
【例4-3】4.2獲取和修改bean的屬性getProperty動作標記獲取屬性setProperty動作標記設置屬性19getProperty動作標記使用該標記可以獲得bean的屬性值,并用串的形式發(fā)送給瀏覽器。格式如下:<jsp:getPropertyname="bean的名字"property="bean的屬性"/>其中,name是bean的名字,用來指定要獲取哪個bean,property取值是該bean的一個屬性的名字。該指令相當于表達式:<%=bean.getXxx()%>setProperty動作標記使用該標記可以設置bean的屬性值
(1)設置bean的屬性為一個表達式的值的格式如下:<jsp:setPropertyname="bean的名字"property="bean的屬性"value="<%=expression%>"/>表達式的類型必須和bean的屬性的類型一致(2)設置bean的屬性為一個字符串的格式如下:<jsp:setPropertyname="bean的名字"property="bean的屬性"value=字符串/>注:字符串會自動轉化為bean的屬性的類型【例4-4】setProperty動作標記(3)通過HTTP表單的參數(shù)的值來設置bean的相應屬性的值:
<jsp:setPropertyname="bean的名字"property="*"/>
(4)通過HTTP表單的某個參數(shù)的值來設置bean的相應屬性的值,其格式如下:<jsp:setPropertyname="bean的名字"property="屬性名"param="參數(shù)名"/>【例4-5】4.3bean的輔助類
在寫bean的時候,可能需要一些自己編寫的類,此時只要將這些類和創(chuàng)建bean的類寫在一個java源文件中即可,但必須將源文件編譯后產(chǎn)生的全部字節(jié)碼文件復制到相應的目錄中?!纠?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國純天然樹脂數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國繪畫板數(shù)據(jù)監(jiān)測研究報告
- 2025年鋯英磚項目可行性研究報告
- 2025至2030年中國投影時鐘數(shù)據(jù)監(jiān)測研究報告
- 2025年蠟線機項目可行性研究報告
- 2025年紅木盒項目可行性研究報告
- 2025至2030年中國音箱通風管數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國速溶吉士粉數(shù)據(jù)監(jiān)測研究報告
- 2025年不銹鋼排泄閥項目可行性研究報告
- 2025至2030年中國無線條碼點歌機數(shù)據(jù)監(jiān)測研究報告
- 銀行零星裝飾維修 投標方案(技術方案)
- 鎖骨骨折個案護理
- 農(nóng)民專業(yè)合作社財務報表(三張報表)
- 殯葬禮儀服務整體服務方案
- 廣東中考英語考綱1600詞匯表及300詞組表(整理打印版)
- 學校安全班主任培訓
- 小班數(shù)學活動《寶寶送物品》課件
- 《電焊工培訓》課件
- 《醫(yī)院感染概論》課件
- 懷念戰(zhàn)友合唱譜
- 《水稻病蟲害及防治》課件
評論
0/150
提交評論