版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JavaBean和MVC,計算機與通信學院 軟件工程學院,一. 回顧,購物商城的例子,,這就是javabean!,二. 認識 JavaBean,JavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:這個Java類必須具有一個無參的構(gòu)造函數(shù)屬性必須私有化。私有化的屬性必須通過public類型的方法暴露給其它程序,并且方法的命名也必須遵守一定的命名規(guī)范。,二. 認識 JavaBean,JavaBean可分為兩種:可視化
2、組件,這是一種有用戶界面(UI,User Interface)的JavaBean,開發(fā)人員可以在運行的結(jié)果中看到界面效果,主要應(yīng)用于JAVASE非可視化組件,這是一種沒有用戶界面,主要負責處理事務(wù)(如數(shù)據(jù)運算,操縱數(shù)據(jù)庫)的JavaBean。JAVAEE通常只支持非可視化組件。,二. 認識 JavaBean,非可視化組件JavaBean 規(guī)范一個JavaBean和一個JavaApplet相似,是一個非常簡單的遵循某種嚴格協(xié)議的Jav
3、a類。每個JavaBean的功能都可能不一樣,但它們都必須支持以下特征:一個JavaBean沒有必須繼承的特定的基類或接口(所以servlet不是JavaBean)。一個JavaBean的類必須是具體的、公共的,并且具有無參數(shù)構(gòu)造器。一個JavaBean通過提供getter和setter公共方法,以暴露其私有屬性供外部獲取,二. 認識 JavaBean,非可視化組件JavaBean 規(guī)范JavaBean的屬性可以是任意類型,并且
4、一個JavaBean可以有多個屬性。每個屬性通常都需要具有相應(yīng)的setter、 getter方法,setter方法稱為屬性修改器,getter方法稱為屬性訪問器。Setter、getter方法嚴格遵照駝峰命名法來命名。例如,name屬性的修改器名稱為setName,訪問器名稱為getName,二. 認識 JavaBean,JDBC 驅(qū)動器程序,三. 在 JSP 中使用 JavaBean,建立一個JavaBean在myEclipse中
5、新建一個web project,其名為javabean。在項目src目錄中新建一個class. 其名為Student , 其所屬package為beans,其內(nèi)容如右:,package beans;public class Student {private String stuno;private String stuname;public String getStuno() {return stuno;}publi
6、c void setStuno(String stuno) {this.stuno = stuno;}public String getStuname() {return stuname;}public void setStuname(String stuname) {this.stuname = stuname;}},三. 在 JSP 中使用 JavaBean,編寫JavaBean要點私有屬性變量的首字母
7、要大寫提供getter方法幫外部獲取私有屬性,其名稱為getXXX(XXX為私有屬性名)提供setter方法幫外部設(shè)置私有屬性,其名稱為setXXX(XXX為私有屬性名)如果私有屬性是boolean型,要將getXXX改為isXXX方法,三. 在 JSP 中使用 JavaBean,在JSP中實例化JavaBean在JSP中使用JavaBean的方法有兩種。其一是直接在直接在 JSP 中實例化 JavaBean。1. 這需要你
8、首先在頁面中加載這個類:2. 實例化這個類:,三. 在 JSP 中使用 JavaBean,在JSP中實例化JavaBean在JSP中使用JavaBean的方法有兩種。其一是直接在直接在 JSP 中實例化 JavaBean。1. 這需要你首先在頁面中加載這個類:2. 實例化這個類:3. 調(diào)用setter方法:4. 調(diào)用getter方法:,三. 在 JSP 中使用 JavaBean,課堂練習直
9、接在剛剛建立的項目javabean中的index.jsp中,通過jsp代碼實例化student類。并且創(chuàng)建一個student對象,賦予其stuname值和stuno值。并通過table標簽套用jsp表達式輸出。輸出結(jié)果如下圖所示:,三. 在 JSP 中使用 JavaBean,使用標簽加載JavaBean除了直接在直接在 JSP 中實例化 JavaBean這種方法外,我們還可以使用標簽加載JavaBean。1. 標簽的格式:
10、,,,對象名,所屬類名,三. 在 JSP 中使用 JavaBean,使用標簽加載JavaBean2. 標簽設(shè)置屬性值 3. 標簽獲取屬性值,三. 在 JSP 中使用 JavaBean,使用標簽加載JavaBean,學生姓名:,例子:,三. 在 JSP 中使用 JavaBean,使用標簽的注意點其中class包含了類名,因此無需再次使用加載這個類Scope是作用范圍,是一個具有生命時間的變量,包
11、含page, session,request,application四個選項,三. 在 JSP 中使用 JavaBean,課堂練習在index.jsp中,改用jsp標簽創(chuàng)建student對象,賦值和輸出值。輸出結(jié)果如下圖所示:,四.JavaBean 的范圍,page 范圍page 范圍表示 JavaBean 對象的作用范圍只是在實例化其的頁面上,只在當前頁面可用,在別的頁面中不能被認識,四.JavaBean 的范圍,reques
12、t 范圍request 范圍表示 JavaBean 實例除了可以在當前頁面上可用之外,還可以在通過 forward 方法跳轉(zhuǎn)的目標頁面中被認識到,四.JavaBean 的范圍,session 范圍session 范圍表示 JavaBean 對象可以存在 session 中,該對象可以被同一個用戶同一次會話的所有頁面認識到,四.JavaBean 的范圍,application 范圍application 范圍表示 JavaBea
13、n 對象可以存在 application 中,該對象可以被所有用戶的所有頁面認識到.jsp:useBean 動作所實例化的對象就會保存在服務(wù)器的內(nèi)存空間中,直到服務(wù)器關(guān)閉,才會被移除。在此期間如果有其他的 JSP 程序需要調(diào)用到該 JavaBean,jsp:useBean 動作不會創(chuàng)建新的實例,五. JavaBean的應(yīng)用,JavaBean與jsp的結(jié)合使用SUN公司推出JSP技術(shù)后,同時也推薦了兩種web應(yīng)用程序的開發(fā)模式,一種是
14、JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。,五. JavaBean的應(yīng)用,JSP+JavaBean模式JSP+JavaBean模式適合開發(fā)業(yè)務(wù)邏輯不太復雜的web應(yīng)用程序,這種模式下,JavaBean用于封裝業(yè)務(wù)數(shù)據(jù),JSP即負責處理用戶請求,又顯示數(shù)據(jù)。,五. JavaBean的應(yīng)用,Servlet+JSP+JavaBean模式Servlet+JSP+JavaBean(MVC)模式適合開發(fā)復
15、雜的web應(yīng)用,在這種模式下,servlet負責處理用戶請求,jsp負責數(shù)據(jù)顯示,javabean負責封裝數(shù)據(jù)。 Servlet+JSP、JavaBean模式程序各個模塊之間層次清晰,web開發(fā)推薦采用此種模式。,五. JavaBean的應(yīng)用,案例一:使用模式一編寫計算器使用JSP+JavaBean編寫一個計算器(calculator)頁面,JavaBean具有firstNum、secondNum、result、operator屬性,
16、并提供一個calculate方法。,五. JavaBean的應(yīng)用,使用此模式的好處,JSP模板文件負責呈現(xiàn),JavaBean業(yè)務(wù)數(shù)據(jù)模型負責操作數(shù)據(jù),前端程序員,后端程序員,,調(diào)用接口,五. JavaBean的應(yīng)用,案例二:使用模式二完成用戶注冊和登陸我們可以在上節(jié)課“購物商城的簡單實例”的基礎(chǔ)上,創(chuàng)建名為user的JavaBean,包含用戶名和密碼兩個參數(shù)。然后將LoginServlet.java中判斷用戶是否正確登陸的邏輯
17、轉(zhuǎn)移到新建的JavaBean中 。確保轉(zhuǎn)移后程序依然能正確運行。,五. JavaBean的應(yīng)用,提示1:名為user的javabean,可按一般javabean的方式書寫。提示2:關(guān)于是否正確登陸的函數(shù),可在其中新建一個公共接口提供這個功能。,package user;public class user {private String uname;private String upwd;//結(jié)構(gòu)函數(shù) publi
18、c user(String uname, String upwd) { this.uname = uname; this.upwd = upwd; } public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getU
19、pwd() {return upwd;}public void setUpwd(String upwd) {this.upwd = upwd;}public int login(String uname, String upwd){ if (uname.equals("張迪")&&upwd.equals("123456")){ return 1; } re
20、turn 0;}},五. JavaBean的應(yīng)用,提示3:在servlet中調(diào)用javabean,如同調(diào)用其它java類一樣,只要import這個類即可。然后就可以在servlet中實例化這個類,然后調(diào)用它的方法了。,import user.user;…………user u1 = new user(uname, upwd);int flag = u1.login(uname, upwd);if (flag == 1){
21、 …….}else{……..},五. JavaBean的應(yīng)用,JavaBean應(yīng)用注意事項在JavaBean中限制生成HTML雖然JavaBean也可以通過輸出字符串的方式輸出HTML,但是最好不要讓JavaBean 生成任何HTML,因為這是jsp負責的工作。向頁面直接輸出腳本或者DHTML相當于自我毀滅,因為某些瀏覽器版本在處理不正確的腳本時會崩潰(非常少但是有)。如果用戶的JavaBean在運行時是動態(tài)的推出復雜的
22、HTML語言,用戶將陷入調(diào)試的噩夢。另外,復雜的HTML將限制JavaBean的壽命和靈活性。,五. JavaBean的應(yīng)用,JavaBean應(yīng)用注意事項JavaBean的設(shè)計目標Write once, run anywhere, reuse everywhere,即“一次性編寫,任何地方執(zhí)行,任何地方重用”。因此,JavaBean應(yīng)該提供一個實際的方法來增強現(xiàn)有代碼的利用率,而不再需要在原有代碼上重新進行編程。除了在節(jié)約開發(fā)資源方
23、面的意義外,一次性地編寫JavaBean組件也可以在版本控制方面起到非常好的作用。開發(fā)者可以不斷地對組件進行改進,而不必從頭開始編寫代碼。這樣就可以在原有基礎(chǔ)上不斷提高組件功能,而不會犯相同的錯誤。,六. MVC簡介,我們之前做的購物商場就是一個MVC模式的應(yīng)用實例,JSP,servlet,JavaBean,數(shù)據(jù)庫,瀏覽器,視圖,控制器,模型,,,,,,六. MVC簡介,MVC的概念MVC 模式代表 Model-View-Contro
24、ller(模型-視圖-控制器) 模式。這種模式用于應(yīng)用程序的分層開發(fā)。是軟件設(shè)計模式的一種,自從90年代末提出以來已經(jīng)成為應(yīng)用最為廣泛的工業(yè)標準。使用MVC模式的目的在于將數(shù)據(jù)對象、業(yè)務(wù)邏輯和視圖分離。因為視圖、業(yè)務(wù)邏輯根據(jù)不同的使用場景可能變化很大,而數(shù)據(jù)對象結(jié)構(gòu)則變化較小。將它們分離,在需要改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯,達到減少編碼的時間。,六. MVC簡介,Model層M即model模型是指模
25、型表示業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。,六. MVC簡介,View層V即View視圖是指用戶看到并與之交互的界面。比如由html元素組成的網(wǎng)頁界面,或者軟件的客戶端界面。MVC的好處之一在于它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,它
26、只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。,六. MVC簡介,View層C即controller控制器是指控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)。,六. MVC簡介,MVC的優(yōu)點1.耦合性低2.可重用性高3.部署快,生命周期成本低4.可維護性高MVC模式廣泛應(yīng)用于各類應(yīng)用開發(fā)中。許多經(jīng)典的
27、web開發(fā)框架都是遵循該模式設(shè)計的,如rails, drupal, Django, thinkphp、struts2等等。當然jsp + servlet + javabean就是其中一類。,六. MVC簡介,MVC的缺點1.不適合小型應(yīng)用程序2.增加了系統(tǒng)架構(gòu)和實現(xiàn)的復雜性3.視圖與控制器連接過于緊密,這部分耦合度較高,降低了視圖對模型數(shù)據(jù)的訪問。擴展閱讀:百度搜索MVVM框架,本章結(jié)束,本章總結(jié) JavaBean 概念和編
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論