




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、框架技術(shù)概述,本門課程目標(biāo),學(xué)完框架課程后,你能夠: 學(xué)會(huì)使用Struts規(guī)范程序結(jié)構(gòu) 學(xué)會(huì)使用Hibernate簡(jiǎn)化數(shù)據(jù)庫(kù)訪問操作 學(xué)會(huì)使用Spring提高開發(fā)效率,為什么需要框架技術(shù),如何更快更好地寫簡(jiǎn)歷? 使用Word簡(jiǎn)歷模板 思考: 使用模板有什么好處呢?,結(jié)構(gòu)統(tǒng)一,便于人事閱讀,不用考慮布局、排版等,提高效率,可專心在簡(jiǎn)歷內(nèi)容上,新手也可以作出專業(yè)的簡(jiǎn)歷,為什么需要框架技術(shù),如何更快更好地蓋房子?,使用預(yù)制的架構(gòu),如何更快更好地做軟件呢?,什么是框架技術(shù),“框架技術(shù)”幫我們更快更好地構(gòu)建程序: 是一個(gè)應(yīng)用程序的半成品 提供可重用的公共結(jié)構(gòu) 按一定規(guī)則組織的一組組件 優(yōu)勢(shì): 不用再考慮
2、公共問題 專心在業(yè)務(wù)實(shí)現(xiàn)上 結(jié)構(gòu)統(tǒng)一,易于學(xué)習(xí)、維護(hù) 新手也可寫出好程序,直接組裝汽車,不用自己造輪子,站在巨人的肩膀上,享用前人經(jīng)驗(yàn)和智慧,Java流行框架,大名鼎鼎的SSH,Struts Technology,Contents,Struts 入門 MVC 模式 Struts 概述 第一個(gè)例子:登錄應(yīng)用 Struts 詳解 配置文件 Controller 控制器 Model 組件 View 視圖組件 Struts 標(biāo)簽庫(kù) HTML標(biāo)簽庫(kù) Bean標(biāo)簽庫(kù) Logic標(biāo)簽庫(kù),Contents,高級(jí) Validation 異常處理 項(xiàng)目實(shí)戰(zhàn),Struts 入門,MVC 模型,MVC是一種設(shè)計(jì)模式,
3、它是Model-View-Controller的縮寫,是一種著名的用戶界面設(shè)計(jì)架構(gòu)。 JSP Model 2采用的就是MVC設(shè)計(jì)思路。,JSP Model 1 Architecture,JSP Model 2 Architecture,MVC 模型,MVC經(jīng)典架構(gòu)中,把應(yīng)用程序分為 3 個(gè)部分 Model: 代表該應(yīng)用程序的核心功能,負(fù)責(zé)處理用戶的數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)邏輯。同時(shí),模型還為視圖的顯示提供數(shù)據(jù),并可為多個(gè)視圖所共用。 View: 主要指與用戶交互的界面。視圖可以接收用戶的輸入,但它不包括任何實(shí)際的業(yè)務(wù)處理,它只是將數(shù)據(jù)轉(zhuǎn)交給控制器。同時(shí),視圖負(fù)責(zé)展現(xiàn)模型傳遞給用戶的數(shù)據(jù)。 Control
4、ler: 負(fù)責(zé)接收用戶的請(qǐng)求和數(shù)據(jù),接著它會(huì)做出判斷將請(qǐng)求和數(shù)據(jù)交給哪一個(gè)模型來處理,最后調(diào)用視圖來顯示模型返回的數(shù)據(jù)。,MVC 模式,MVC 模式,工作流程 首先是視圖與用戶打交道,接收來自用戶的數(shù)據(jù)和請(qǐng)求,并將它發(fā)往控制器 控制器對(duì)請(qǐng)求進(jìn)行判斷,并選擇合適的業(yè)務(wù)處理模型來完成用戶的請(qǐng)求。 模型處理完請(qǐng)求后,通知控制器,控制器選擇合適的視圖來向用戶呈現(xiàn)處理結(jié)果。,MVC 模式,MVC模式體現(xiàn)了分層設(shè)計(jì)的思想,具有以下優(yōu)點(diǎn) 從視圖方面說,多種視圖可以共享一個(gè)后臺(tái)模型,為實(shí)現(xiàn)多種用戶界面提供了便利。表現(xiàn)層與邏輯層相互獨(dú)立,提高了代碼可重用性。當(dāng)需要修改界面時(shí),無需改動(dòng)后臺(tái)模型。 從模型方面說,由
5、于其實(shí)現(xiàn)與界面獨(dú)立,因此模型只需提供接口供上層調(diào)用,很好地體現(xiàn)了面向?qū)ο笤O(shè)計(jì)的信息封裝和隱藏的原則。當(dāng)需要修改模型時(shí),只要保證接口不變,原有的上層程序都不需改動(dòng)。另外,因?yàn)槊嫦蚪涌诰幊蹋虼丝梢允褂貌挥玫膶?shí)現(xiàn)來替換模型。(如數(shù)據(jù)庫(kù)編程) 從控制器方面說,控制器作為介于視圖和后臺(tái)模型間的控制組件,可更好地維護(hù)程序流程,選擇業(yè)務(wù)模型,選擇用戶視圖,使程序的調(diào)用規(guī)則更加清晰,很大程序上優(yōu)化了系統(tǒng)。 注:面向接口編程是面向?qū)ο蟪绦蛟O(shè)計(jì)中非常重要的概念,它可以實(shí)現(xiàn)松散耦合的程序結(jié)構(gòu),對(duì)于程序的可重用性、可擴(kuò)展性和可維護(hù)性都有相當(dāng)重要的意義。,MVC 模式一個(gè)例子,由于MVC的優(yōu)勢(shì),很多系統(tǒng)都采用它進(jìn)行系
6、統(tǒng)架構(gòu)和實(shí)現(xiàn)。 例子:一個(gè)基于MVC模式的java web登錄應(yīng)用,Struts 概述,Struts是由Apache開源軟件聯(lián)盟()提供的一套用于構(gòu)建Java Web應(yīng)用程序的架構(gòu)。 它的目標(biāo)是希望分離Web程序的表示層、控制層和后臺(tái)功能層,也就是實(shí)現(xiàn)著名的MVC模式 它可以使程序員將更多的精力投入后臺(tái)的業(yè)務(wù)邏輯設(shè)計(jì) Struts并非創(chuàng)建了一套新技術(shù),并未取代之前的JSP、Servlet或者其他的Java Web基本組件。Struts的所有功能都是建立在已有的Java Web組件上 Struts只是使用一種方式將已有基本組件組織起來,使它們協(xié)同工作。 Struts提
7、供了自己的控制器組件,并可以融合許多先進(jìn)的技術(shù)來提供后臺(tái)模型與前端視圖。,Struts基本模型,Struts VS. JSP Model 2,控制器 Struts采用ActionServlet和Action來替代模型2中的Servlet組件 模型2中,用戶請(qǐng)求會(huì)由許多不同的Servlet接收處理,如LoginServlet、RegisterServlet等。Struts中,所有的用戶請(qǐng)求都由ActionServlet接收,然后根據(jù)用戶請(qǐng)求的不同到struts-config.xml文件中查找相應(yīng)的子控制器,也就是Action。 Action執(zhí)行具體的控制器的功能,并調(diào)用相應(yīng)的后臺(tái)模型完成業(yè)務(wù)邏輯
8、,Struts VS. JSP Model 2,視圖 Struts依然使用JSP作為主要的視圖工具。Struts為了實(shí)現(xiàn)更純凈的HTML代碼,又設(shè)計(jì)了大量的標(biāo)記來支持用戶的開發(fā)。 當(dāng)用戶通過視圖表單向Servlet發(fā)送數(shù)據(jù)時(shí)使用到了一個(gè)叫做ActionForm的組件,該組件通常也被歸于視圖層。 ActionForm的作為就是將用戶提交的數(shù)據(jù)打包成一個(gè)Bean對(duì)象,除了基本的get和set方法外,它還提供了另外兩個(gè)特殊的方法用于對(duì)用戶提交的數(shù)據(jù)進(jìn)行一些初始化或驗(yàn)證的工作,Struts VS. JSP Model 2,模型 Struts應(yīng)用程序中,模型部分并沒有太多的規(guī)定,通常的做法是采用EJB或
9、其他對(duì)象關(guān)系映射工作(如Hibernate)來實(shí)現(xiàn)模型組件。 其他MVC框架 Maverick 與Struts相比,Maverick提供了更加靈活的輕量型Web框架。其核心層設(shè)計(jì)簡(jiǎn)潔、功能強(qiáng)大、擴(kuò)展性強(qiáng),而且最大的好處是可以采用多種模板和轉(zhuǎn)換技術(shù)實(shí)現(xiàn)表現(xiàn)層邏輯 WebWork 一個(gè)開源Web應(yīng)用框架,目的在于簡(jiǎn)化Web應(yīng)用開發(fā)。它相當(dāng)于Struts的一個(gè)輕量級(jí)版本,功能和架構(gòu)與Struts非常想像。 Turbine Turbine與Struts的最大不同是,它的設(shè)計(jì)思路決定了它是一個(gè)Web應(yīng)用的完全解決方案。Struts其實(shí)只是很好的解決了MVC中的V和C部分,但對(duì)于后臺(tái)業(yè)務(wù)模型沒有太多的規(guī)定
10、。Turbine使用了Torque和Peers作為數(shù)據(jù)層的管理,更好地實(shí)現(xiàn)了模型部分。,結(jié)構(gòu)圖,視圖:login.jsp等,控制器:ActionServlet、LoginAction,模型:LoginHandler,LoginForm Bean,struts-config.xml,登錄應(yīng)用(struts),練習(xí)題1,問題:在Struts應(yīng)用的視圖中包含哪些組件? 選項(xiàng): (A) JSP (B) Servlet (C) ActionServlet (D) Action (E) 代表業(yè)務(wù)邏輯或業(yè)務(wù)數(shù)據(jù)的JavaBean (F) EJB (G) 客戶化標(biāo)簽 答案:A,G,練習(xí)題2,問題:在Strut
11、s應(yīng)用的控制器中包含哪些組件? 選項(xiàng): (A) JSP (B) Servlet (C) ActionServlet (D) Action (E)代表業(yè)務(wù)邏輯或業(yè)務(wù)數(shù)據(jù)的JavaBean (F) EJB (G) 客戶化標(biāo)簽 答案:B,C,D,練習(xí)題3,問題:在Struts應(yīng)用的模型中包含哪些組件? 選項(xiàng): (A) JSP (B) Servlet (C) ActionServlet (D) Action (E)代表業(yè)務(wù)邏輯或業(yè)務(wù)數(shù)據(jù)的JavaBean (F) EJB (G) 客戶化標(biāo)簽 答案:E,F,Struts開發(fā)過程,使用Struts實(shí)現(xiàn)加法器,使用 開發(fā)的4個(gè)步驟 給項(xiàng)目添加Struts支持
12、 實(shí)現(xiàn)業(yè)務(wù)類 添加Struts組件 1、ActionForm 2、Action 3、添加jsp頁(yè)面 4、配置struts-config.xml 調(diào)試運(yùn)行,完成的項(xiàng)目,1,2,3,4,新建Web項(xiàng)目,使用Struts實(shí)現(xiàn)加法器,給項(xiàng)目添加Struts支持,點(diǎn)選 MyEclipse Add Struts Capabilities,添加Struts支持,1,在項(xiàng)目節(jié)點(diǎn)上單擊右鍵,使用Struts實(shí)現(xiàn)加法器,給項(xiàng)目添加Struts支持,添加Struts支持后的項(xiàng)目,增加了: Struts JAR 包 struts-config.xml Struts標(biāo)簽庫(kù) 修改了web.xml,添加Struts支持前的
13、項(xiàng)目,Struts是基于Servlet技術(shù)實(shí)現(xiàn)的框架,可以配置Struts配置文件的文件名,支持多個(gè)配置文件,攔截所有以“.do”結(jié)尾的請(qǐng)求,1,使用Struts實(shí)現(xiàn)加法器,實(shí)現(xiàn)業(yè)務(wù)類(模型 - Model),2,使用Struts實(shí)現(xiàn)加法器,添加Struts組件,1、ActionForm,3,單擊Add,給Form增加屬性。,3,使用Struts實(shí)現(xiàn)加法器,添加Struts組件,2、Action 配置Action屬性,設(shè)置Path屬性 即訪問該Action的路徑,設(shè)置Form屬性 將Form和Action關(guān)聯(lián),設(shè)置Type屬性 即Action對(duì)應(yīng)的Java類,設(shè)置Forwards屬性 用于配置
14、轉(zhuǎn)發(fā)的JSP頁(yè)面,3,使用Struts實(shí)現(xiàn)加法器,添加Struts組件,2、Action - 編寫Action代碼,public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) Calculator calc = new Calculator(); /獲得ActionForm的引用 AddForm addForm = (AddForm) form; double model = calc.add( Do
15、uble.parseDouble(addForm.getFirstNumber(),Double.parseDouble(addForm.getSecondNumber() ); /將計(jì)算結(jié)果存儲(chǔ)到request中 request.setAttribute(sum, model); /將請(qǐng)求轉(zhuǎn)發(fā)到result出口指向的頁(yè)面 return mapping.findForward(result); ,y2ssh.sg.chp2.AddAction.java,從ActionForm中即可獲得表單提交的參數(shù),通過邏輯名引用頁(yè)面 邏輯名和頁(yè)面對(duì)應(yīng)關(guān)系在struts-config.xml中配置,3,使用Struts實(shí)現(xiàn)加法器,添加Struts組件,3. 添加JSP頁(yè)面 根據(jù) Action 的 Forwords屬性 的設(shè)置,添加add.jsp和 add_result.jsp兩個(gè)頁(yè)面,采用Struts提供的html:form標(biāo)簽,對(duì)應(yīng)前面Action 的path屬性,對(duì)應(yīng)前面Form 的屬性名,ActionForm保存在request或session中,3,使用Struts實(shí)現(xiàn)加法器,添加Struts組件,4、配置struts-config.xml,3,使用Struts實(shí)現(xiàn)加法器,調(diào)試運(yùn)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)派工合同范本
- 個(gè)人課題申報(bào)書怎么
- 咨詢中介服務(wù)合同范本
- 醫(yī)院大型設(shè)備合同范本
- 五金鉆頭采購(gòu)合同范本
- 農(nóng)村買地蓋房合同范本
- 刷單協(xié)議合同范本
- 賣房有效合同范本
- 合肥房屋拆除合同范本
- 周圍房子出租合同范例
- 大班數(shù)學(xué)《森林小警官》配套 課件
- 工程項(xiàng)目質(zhì)量風(fēng)險(xiǎn)源識(shí)別及管控措施
- 學(xué)前班語言《貓醫(yī)生過河》課件
- 社會(huì)學(xué)(高校社會(huì)學(xué)入門課程)全套教學(xué)課件
- 2024年湖南有色金屬職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案
- 創(chuàng)傷中心匯報(bào)
- 2023年春節(jié)美化亮化工程施工用電預(yù)控措施和事故應(yīng)急預(yù)案
- 2024年長(zhǎng)沙職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 與醫(yī)保有關(guān)的信息系統(tǒng)相關(guān)材料-模板
- 星巴克新員工培訓(xùn)手冊(cè)
- 聚乙烯(PE)孔網(wǎng)骨架塑鋼復(fù)合穩(wěn)態(tài)管
評(píng)論
0/150
提交評(píng)論