下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Struts2 框架培訓日志Struts框架的起源Struts是在2001年5月發(fā)布第一個版本。Struts主要目的實現(xiàn)MVC模式開發(fā)。結(jié)合Servlet和JSP技術(shù)將業(yè)務(wù)邏輯代碼與數(shù)據(jù)顯示代碼分離開,實現(xiàn)低耦合JSP / Freemarker + Servlet + JavaBean(JDBC)/EJBStruts不斷改進中兩個最受矚目的方案是Shale和Struts Ti。Shale是一個基于構(gòu)件的框架,并在最近成為Apache的頂級項目。Struts Ti則是在Struts的成功經(jīng)驗基礎(chǔ)上繼續(xù)堅持對前端控制器(Front Controller)和MVC (model-view-contr
2、oller) 模式進行改進。WebWork是在2002年3月發(fā)布的。在 2005 年 12 月,WebWork與 Struts Ti宣布合并。與此同時,Struts Ti改名為 Struts Action Framework 2.0Strutsl.x 與 Struts2 區(qū)別Struts2核心控制器由Servlet修改為Filter(核心控制器控制對目標程序(Action程序)的訪問.)Action 對象多實例,不需要考慮線程安全問題。支持多種視圖展現(xiàn)技術(shù)( JSP, Freemarker, Volicity)擴展性強,提供了攔截器 InterceptorStruts2不是Struts1的升級
3、,而是繼承webwork的血統(tǒng),它吸收了 strutsl和webwork的優(yōu)勢。因為strutsl框架存在固有的一些問題,所以這里我們只介紹Struts2框架。Strutsl框架不再做介紹。Struts2框架是一個輕量級的MVC流程框架輕量級:用普通JavaBean程序代替EJB完成代碼開發(fā),從開發(fā)角度,從運行角度,比較快速和簡單.無侵入性.MVC:Model - View - ControllerModel :做業(yè)務(wù)邏輯代碼(Service),數(shù)據(jù)處理代碼(DAO),數(shù)據(jù)封裝(User/Page) - JavaBean/EJBView : 數(shù)據(jù)展示 JSP(JSTL/EL)/Freemark
4、erController :流程控制(接收數(shù)據(jù),調(diào)用Model,跳轉(zhuǎn)頁面)Servlet/Filter流程:數(shù)據(jù)流程.數(shù)據(jù)從哪來的,到哪里去框架:框架是對通用代碼進行封裝,做項目開發(fā)利用框架來做,可以提高開發(fā)效率,程序員將開發(fā)任務(wù)重點放在業(yè)務(wù)邏 輯代碼的實現(xiàn)上.框架從設(shè)計的角度,利用6大開發(fā)原則(開閉原則(OCP);迪米特法則,依賴倒轉(zhuǎn)原則,里氏代換原則, 接口隔離原則,合成聚合/復(fù)用原則),以及相關(guān)設(shè)計模式(工廠,模板,適配器,代理,單例,多例),所以,框架都遵循迪米特 法則.Struts2 框架的文件結(jié)構(gòu): HYPERLINK apps:包含了框架的多個應(yīng)用壓縮包(war)docs :框架
5、的說明文檔(學習手冊,API文檔)。lib :框架依賴的jar包src :框架的源碼文件夾Struts2框架的環(huán)境搭建Web項目JAR 包配置文件(struts.xml)業(yè)務(wù)類及頁面(HelloWorldAction, HelloWorld.jsp)web.xml (增加過濾器:核心控制器struts2 框架的第一個例子 參考struts2框架自帶的例子:struts2-blank-2.x.war (需要將文件拷貝到tomcat服務(wù)器的webapps中)struts2 框架的源碼解讀 struts2框架是MVC流程框架,所以重點就在流程上,如果能將源碼的實現(xiàn)看懂,那么對于框架的應(yīng)用和技術(shù)實現(xiàn)就
6、更加容易理解通過源碼的解讀,可以發(fā)現(xiàn),框架采用工廠模式和代理模式等設(shè)計模式,并且底層采用反射方式實現(xiàn),所以理解好 反射,對于框架的學習會更好。通過分析Struts2的源代碼,講解設(shè)計到的JavaEE設(shè)計模式和GoF設(shè)計模式。JavaEE前端控制器模式、GoF的代 理模式ActionProxy、工廠模式(抽象工廠模式)ObjectFactory、責任鏈模式Interceptor、策略模式ResultType、模 版方法模式ResultType內(nèi)部實現(xiàn)、缺省適配器模式Interceptor內(nèi)部實現(xiàn);總體來說設(shè)計模式分為三大類:創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原
7、型模式結(jié)構(gòu)型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。開發(fā)原則:開閉原則( OCP- Open Closed Principle)里氏代換原則(LSP- Liskov Substitution Principle LSP)依賴倒轉(zhuǎn)原則(DIP- Dependence Inversion Principle)接口隔離原則(ISP- Interface Segregation Principle)合成聚合
8、復(fù)用原則(Composite/Aggregate Reuse Principle ,CARP)迪米特法則(Law of Demeter)又叫作最少知道原則(Least Knowledge Principle簡寫LKP)Struts2流程圖ActionProxy.In竺r賛貝。匚比/Configuratian ManagerTemplate Struts2流程圖ActionProxy.In竺r賛貝。匚比/Configuratian ManagerTemplate Struts2的應(yīng)用ActionInvocation干ResultActicnContextClenUpActionMapperstr
9、uts.xmlIntercepior 3 j 2/5struts.xmlTv1)Action 默認執(zhí)行的方法名稱為 execute繼承 ActinSupport 類(推薦)實現(xiàn) Action 接口2)擴展名默認情況下的擴展名有2個(action,空字符串)修改默認的擴展名struts.xml文件中增加常量標簽(推薦)perties資源配置文件 過濾器初始化參數(shù)3)字符編碼默認的字符編碼 UTF-8框架核心是過濾器,所以可以直接設(shè)定字符編碼。只能解決post的亂碼問題。4)重新加載配置文件默認情況下,修改配置文件,必須重新啟動服務(wù)器才可以起作用。影響開發(fā)效率設(shè)定常量,讓程序運行時就可以重新加載配
10、置文件,可以提高開發(fā)效率開發(fā)模式重新加載配置文件的設(shè)置以及開發(fā)模式的設(shè)置只能應(yīng)用在開發(fā)階段,在生產(chǎn)環(huán)境中一定不能設(shè)置為true5)命名空間類似于java中的包應(yīng)用于訪問action的路徑命名空間的訪問規(guī)則。6)Action 創(chuàng)建框架通過配置文件中的class屬性反射創(chuàng)建對象。多例創(chuàng)建,不會出現(xiàn)線程安全問題。7)動態(tài)方法調(diào)用在請求路徑中,將方法名和action的訪問路徑使用感嘆號連接起來。在配置文件中增加method屬性(推薦)默認的方法名就是 execute方法名也可以通過通配符進行設(shè)定。8)數(shù)據(jù)的流轉(zhuǎn)OGNL 和 ValueStack數(shù)據(jù)的展示使用 El 表達式可以直接訪問 action 的
11、屬性。數(shù)據(jù)的存儲屬性驅(qū)動模式模型驅(qū)動模式域驅(qū)動模式數(shù)據(jù)的傳播訪問存儲對象(Map)訪問真正的 HTTP 對象9)文件上傳將文件的內(nèi)容放置在請求體中傳遞給服務(wù)器框架支持3種上傳組件(cos, pell),默認為commons-fileupload框架屏蔽了組件的使用。對于開發(fā)人員來講,只需要操作文件流就可以了。國際化資源(多語種)文件-起名規(guī)則國際化的應(yīng)用的場景。頁面跳轉(zhuǎn)默認使用轉(zhuǎn)發(fā)方式(dispatcher)跳轉(zhuǎn)Action 轉(zhuǎn)發(fā) : chain重定向 :redirectAction 重定向 : redirectAction文件下載是以流的方式完成頁面的跳轉(zhuǎn)。需要注意配置文件和類之間的關(guān)聯(lián)。模
12、板視圖技術(shù)FreemarkerJSP14) 攔截器默認棧引用 20 個攔截器自定義攔截器增加后,框架不再提供默認攔截器攔截器的聲明順序。攔截器模擬過濾器的實現(xiàn)機制15) 異常處理統(tǒng)一異常處理 全局異常映射 全局結(jié)果映射團隊的支持配置文件可以劃分多個子配置文件劃分的規(guī)則是根據(jù)功能模塊進行劃分從主配置文件包含子配置文件注解零配置。執(zhí)行框架流程,不需要增加配置文件使用 JDK1.5 版本之后的新特性,注解功能不推薦使用,違背 OCP 開發(fā)原則。在Struts2中,模型-視圖-控制器模式通過五個核心組件來實現(xiàn):Action攔截器值棧/OGNL結(jié)果類型結(jié)果/視圖技術(shù)Struts2框架MVC架構(gòu)圖Cont
13、rollerModelWtXnOI-52daoI-52daosu-Actions V MVC i Struts2 架構(gòu)Struts2的總結(jié)Struts2 框架的優(yōu)點輕量級的MVC的流程框架統(tǒng)一管理頁面流轉(zhuǎn)簡化了表單向控制器的賦值簡化上傳操作規(guī)范了團隊開發(fā)體現(xiàn)了獨立服務(wù)概念(IOC)增加攔截器的處理機制,可以很容易進行功能的擴展。遵循AOP編程模式提供了多種視圖展現(xiàn)技術(shù)。線程安全。測試起來更加的容易。擁有由積極活躍的開發(fā)人員與用戶組成的成熟社區(qū)Struts2 框架的缺點多例創(chuàng)建對象,性能下降(內(nèi)存消耗大),執(zhí)行效率低于servlet,所以在使用時會有局限性Action 比較臃腫,難于維護底層實現(xiàn)方式非常復(fù)雜,導致學習成本增加(時間,難度)由于設(shè)計的原因會導致安全隱患。http:/user/log;in!getUscrcodeaction?usercodc=successhttp:/user/login!getUsercodeaction?usercode=sueccss&userty
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)科技園區(qū)運營管理合同標準3篇
- 二零二五年度林權(quán)登記與不動產(chǎn)登記網(wǎng)絡(luò)安全保障合同
- 2025年度智能控制噴錨工程勞務(wù)施工合同標準
- 二零二五年度美術(shù)教育研發(fā)中心美術(shù)教師聘用合同4篇
- 2025年度民間擔保人文化創(chuàng)意產(chǎn)業(yè)貸款合同模板
- 二零二五年度數(shù)字經(jīng)濟派遣合同就業(yè)協(xié)議書范本
- 2025年新能源汽車零部件采購及供應(yīng)合同范本2篇
- 2025年度山西旅游行業(yè)勞動合同書范本3篇
- 2025版智能門衛(wèi)服務(wù)與社區(qū)治安巡邏合同3篇
- 2025裝載機駕駛員聘用合同-裝載機駕駛員職業(yè)技能鑒定協(xié)議3篇
- 《openEuler操作系統(tǒng)》考試復(fù)習題庫(含答案)
- 《天潤乳業(yè)營運能力及風險管理問題及完善對策(7900字論文)》
- 醫(yī)院醫(yī)學倫理委員會章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 2024-2025學年人教版生物八年級上冊期末綜合測試卷
- 2025年九省聯(lián)考新高考 語文試卷(含答案解析)
- 死亡病例討論總結(jié)分析
- 第二章 會展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標準規(guī)范
- 商戶用電申請表
評論
0/150
提交評論