![基于新信息技術(shù)的Java-EE應(yīng)用開發(fā)實訓(xùn)教程課件:Struts 2基礎(chǔ)_第1頁](http://file4.renrendoc.com/view11/M03/2E/08/wKhkGWXs5I6AMPGvAAIhORnA-ZM933.jpg)
![基于新信息技術(shù)的Java-EE應(yīng)用開發(fā)實訓(xùn)教程課件:Struts 2基礎(chǔ)_第2頁](http://file4.renrendoc.com/view11/M03/2E/08/wKhkGWXs5I6AMPGvAAIhORnA-ZM9332.jpg)
![基于新信息技術(shù)的Java-EE應(yīng)用開發(fā)實訓(xùn)教程課件:Struts 2基礎(chǔ)_第3頁](http://file4.renrendoc.com/view11/M03/2E/08/wKhkGWXs5I6AMPGvAAIhORnA-ZM9333.jpg)
![基于新信息技術(shù)的Java-EE應(yīng)用開發(fā)實訓(xùn)教程課件:Struts 2基礎(chǔ)_第4頁](http://file4.renrendoc.com/view11/M03/2E/08/wKhkGWXs5I6AMPGvAAIhORnA-ZM9334.jpg)
![基于新信息技術(shù)的Java-EE應(yīng)用開發(fā)實訓(xùn)教程課件:Struts 2基礎(chǔ)_第5頁](http://file4.renrendoc.com/view11/M03/2E/08/wKhkGWXs5I6AMPGvAAIhORnA-ZM9335.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
5.1了解Struts25.2Struts2體系結(jié)構(gòu)5.3Struts2項目資源5.4如何學(xué)習(xí)Struts25.5Struts2項目開發(fā)5.1了解Struts25.1.1Struts2發(fā)展史Struts最早是ApacheJakarta項目的一個組成部分,創(chuàng)立者希望通過對該項目的研究,優(yōu)化JavaServerPages、Servlet、標簽庫以及面向?qū)ο蟮募夹g(shù)。其目的是為了減少運用MVC設(shè)計模型來開發(fā)Web時所用的時間。如果想混合使用Servlets和JSP來建立可擴展的應(yīng)用,那么Struts是一個不錯的選擇。隨著JSP與Servlet技術(shù)在以Web為基礎(chǔ)的應(yīng)用程序中被廣泛應(yīng)用,Java開發(fā)人員認為應(yīng)以較佳的模式來提升Web應(yīng)用程序的可維護性與重復(fù)使用性。早期JSP規(guī)格書中曾列舉了兩種可行的JSP應(yīng)用架構(gòu),分別為Model1與Model2。圖5-1顯示了Model1的程序流程。在Model1架構(gòu)中,JSP直接處理Web瀏覽器送來的請求,并輔以JavaBean處理應(yīng)用相關(guān)邏輯。單純編寫Model1架構(gòu)比較容易,但在Model1中JSP可能同時肩負View與Controller角色,若這兩類程序代碼混雜則不易進行維護。早期由大量JSP頁面所開發(fā)出來的Web應(yīng)用,大都采用了Model1架構(gòu)。Model2是基于MVC架構(gòu)的設(shè)計模式。在Model2架構(gòu)中,前端控制器Servlet負責(zé)接收客戶端發(fā)送的請求(在Servlet中只包含控制邏輯和簡單的前端處理),后端JavaBean完成實際的邏輯處理,JSP頁面處理顯示邏輯。Model2的程序流程如圖5-2所示。如圖5-2所示,Model2中JSP不再承擔(dān)控制器的責(zé)任,它僅為表現(xiàn)層角色,負責(zé)將結(jié)果呈現(xiàn)給客戶,JSP頁面的請求與Servlet(控制器)交互,而Servlet負責(zé)與后臺的JavaBean通信。在Model2模式下,模型(Model)由Javabean充當(dāng),視圖(View)由JSP頁面充當(dāng),而控制器(Controller)則由Servlet充當(dāng)。開發(fā)者也把Model2模式稱為“MVC”模式。由于MVC模式的提出,徹底解決了Model1模式的缺點,很多開發(fā)人員開始使用這種模式來解決他們實際工作中遇到的各種各樣的Web項目開發(fā)問題。正是在這樣一個大背景下,第一個運用了MVC模式,且使用人數(shù)最多的Web項目開發(fā)框架——Struts誕生了。隨著技術(shù)發(fā)展,越來越多的開發(fā)員在使用Struts框架的過程中,發(fā)現(xiàn)Struts在設(shè)計上面存在嚴重不足。與此同時一個來自O(shè)pensymphony開源組織的框架Webwork2出現(xiàn)了,它以優(yōu)秀的設(shè)計思想和靈活的實現(xiàn)吸引了大批的Web開發(fā)者。2005年12月14日,Opensymphony開源組織與Apache社區(qū)宣布Struts項目和Webwork2項目合并,并聯(lián)合推出Struts2,意在將其打造成下一代Web層的開發(fā)框架。5.1.2什么是Struts2Struts2是一種基于MVC的輕量級Web應(yīng)用框架。所謂框架,就是能完成一定基礎(chǔ)功能的半成品軟件。在沒有框架的時候,所有工作都要從零做起;有了框架之后,它為開發(fā)提供了一定的基礎(chǔ)功能,大大提高了開發(fā)的效率和質(zhì)量。Struts2具有以下特征:1.Web應(yīng)用框架Struts2的應(yīng)用范圍是Web應(yīng)用。Struts2更注重將Web應(yīng)用領(lǐng)域的日常工作和常見問題抽象化,為用戶提供一個平臺,讓用戶能基于這個平臺快速地完成Web應(yīng)用開發(fā)。Struts2是Web應(yīng)用框架,也就是說Struts2的運行環(huán)境是Web容器。運行于Web容器中的程序必須遵循基本的開發(fā)標準和規(guī)范:Servlet標準和JSP標準等。2.輕量級輕量級是相對于重量級而言的,指的是Struts2在運行的時候,對Web服務(wù)器的資源消耗較少,比如CPU、內(nèi)存等,但是運行速度相對較快。3.基于MVCStruts2著力于在MVC的各個部分為用戶提供相應(yīng)的幫助。Struts2MVC結(jié)構(gòu)如圖5-3所示。5.2Struts2體系結(jié)構(gòu)5.2.1Struts2請求流程Struts2中用戶提交請求的流程如圖5-4所示。(1)用戶發(fā)送請求:用戶為訪問資源向服務(wù)器發(fā)送請求。(2)FilterDispatcher決定適當(dāng)?shù)腁ction:FilterDispatcher接受請求并決定調(diào)用適當(dāng)?shù)腁ction。(3)調(diào)用攔截器:調(diào)用攔截器并執(zhí)行。(4)執(zhí)行Action:Action將調(diào)用存儲數(shù)據(jù)、檢索數(shù)據(jù)等與數(shù)據(jù)庫有關(guān)的操作。(5)呈遞輸出:結(jié)果呈遞到輸出。(6)返回請求:請求通過攔截器按照相反的順序返回。(7)向用戶展示結(jié)果。5.2.2Struts2框架結(jié)構(gòu)Struts2框架具有簡潔性,它擁有易擴展的前端控制器。對于模型層來說,Struts2可以使用任何數(shù)據(jù)訪問技術(shù),如JDBC、EJB、Hibernate等。對于視圖層來說,Struts2可以與JSP、JTL、JSF、JakartaVelocityEngine、Templates、PDF、XSLT等整合。Struts2還可以對異常進行攔截處理。圖5-5描述了Struts2框架的結(jié)構(gòu),圖中含有4種不同顏色的圖形,它們分別表示了Struts2的4個組成部分。5.2.3Struts2組成介紹Struts2框架中每部分的作用如下:FilterDispatcher:整個Struts2的調(diào)度中心,它會根據(jù)ActionMapper的結(jié)果來決定是否處理請求,如果ActionMapper指出URL應(yīng)該被Struts2處理,那么它將執(zhí)行Action處理,并停止過濾器鏈上還沒有執(zhí)行的過濾器。ActionMapper:提供了HTTP請求與Action執(zhí)行之間的映射,簡單地講,ActionMapper會判斷當(dāng)前請求是否應(yīng)該被Struts2處理,如果需要Struts2處理,那么ActionMapper會返回一個對象來描述請求所對應(yīng)的ActionInvocation信息。ActionProxy:一個特別的中間層,位于Action和xwork之間。ConfigurationManager:xwork配置的管理中心,通俗地講,它可以看作是struts.xml在內(nèi)存中的對應(yīng)。struts.xml:Struts2的應(yīng)用配置文件,負責(zé)URL與Action之間映射的配置、執(zhí)行后頁面跳轉(zhuǎn)的Result配置等工作。ActionInvocation:調(diào)用并執(zhí)行Action。它擁有Action實例和這個Action依賴的攔截器實例。Interceptor:一些無狀態(tài)的類,可以自動攔截Action,它們給開發(fā)者提供了在Action運行之前或Result運行之后執(zhí)行某些功能代碼的機會。Action:Struts2中的動作執(zhí)行單元,它能處理用戶請求,并封裝業(yè)務(wù)所需要的數(shù)據(jù)。Result:不同視圖類型的抽象封裝模型。注意,不同的視圖類型會對應(yīng)不同的Result實現(xiàn)。Struts2中支持多種視圖類型,如JSP、FreeMarker等。Templates:各種視圖類型的頁面模板,例如JSP。TagSubsystem:Struts2的標簽庫。5.3Struts2項目資源5.3.1Struts2相關(guān)資源下載在Struts的官方網(wǎng)站()中可以找到Struts項目的相關(guān)資源信息。Struts2.X版本稱為Struts2。本書介紹的內(nèi)容都是圍繞Struts2.X進行的。在左側(cè)的“Documentation”的分類導(dǎo)航子菜單中,找到Struts2某一版本的鏈接,本書選用Struts(GA)版本,點擊鏈接后就會進入到Struts2相應(yīng)版本的主頁,其中可以找到Struts2的下載鏈接(一個藍色的“DownloadNow”按鈕),如圖5-6所示。點擊“DownloadNow”按鈕進入下載頁面,其中包含各種類型資源的下載包,如圖5-7所示。此時點擊struts--all.zip就能獲得Struts2項目的所有資源。除了struts--all.zip下載鏈接外,還有4個下載鏈接,分別是Struts2的實例項目、基礎(chǔ)依賴類庫、文檔資源和源碼下載,它們是Struts2項目資源的分發(fā)包。5.3.2Struts2項目的目錄結(jié)構(gòu)下載struts--all.zip后將其解壓,可以得到struts2的所有資源,如圖5-8所示。5.4如何學(xué)習(xí)Struts2學(xué)習(xí)Struts2最好的方法,就是通過Struts2項目提供的文檔資料結(jié)合Struts2項目的源代碼進行學(xué)習(xí)。原因有以下兩點:(1)權(quán)威性。Struts2項目包含的文檔資料大多出自開源框架的作者或者開發(fā)人員之手,他們比任何人都了解自己的產(chǎn)品,具有較高的權(quán)威性。(2)正確性。官方文檔資料的正確性較高,且文檔中推薦了許多最佳實踐,更方便學(xué)習(xí)、使用。Struts2是一個開源項目,通過直接閱讀項目源代碼可以深入了解項目的設(shè)計構(gòu)造,提高自身編寫代碼的能力。5.5Struts2項目開發(fā)5.5.1簡單示例本節(jié)以一個簡單的“HelloWorld”應(yīng)用程序,來展示Struts2項目搭建。1.添加Struts2依賴庫使用Eclipse創(chuàng)建一個動態(tài)Web工程,為了讓該工程具有Struts2支持功能,必須將Struts2框架的核心類庫增加到Web應(yīng)用中。將Struts2框架lib路徑下的struts2-core-.jar、xwork-core-.jar、freemarker-2.3.19.jar、javassist-3.11.0.GA.jar、ognl-3.0.5.jar、commons-lang3-3.1.jar和commons-io-2.0.1.jar等Struts2框架的核心類庫復(fù)制到Web應(yīng)用的lib路徑下,也就是工程目錄下的“\WebRoot\WEB-INF\lib”路徑下,如圖5-9所示。2.添加FilterStruts2的入口點是一個過濾器(Filter)。因此,Struts2要按過濾器的方式配置。下面是在web.xml中配置Struts2的代碼:<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>3.顯示頁面通常由JSP頁面來呈現(xiàn)信息。HelloWorld.jsp頁面代碼如下:<%@taglibprefix="s"uri="/struts-tags"%><html><head><title>HelloWorld!</title></head><body><h2><s:propertyvalue="message"/></h2></body></html>4.編寫Action類在Action類中實現(xiàn)execute()方法,代碼如下:importcom.opensymphony.xwork2.ActionSupport;publicclassHelloWorldextendsActionSupport{publicstaticfinalStringMESSAGE="Strutsisupandrunning";publicStringexecute()throwsException{setMessage(MESSAGE);returnSUCCESS;}privateStringmessage;publicvoidsetMessage(Stringmessage){this.message=message;}publicStringgetMessage(){returnmessage;}}5.配置文件在配置文件中,進行配置Action。編輯Src下struts.xml文件,其內(nèi)容如下:<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN""/dtds/struts-2.3.dtd"><struts><packagename="tutorial"extends="struts-default"><actionname="HelloWorld"class="HelloWorld"><result>/HelloWorld.jsp</result></action><!--Addyouractionshere--></package></struts>6.運行程序部署應(yīng)用程序并打開http://localhost:8080/struts2_ch01_blank/HelloWorld.act
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工單位關(guān)于施工進度報告的工作聯(lián)系函
- 跨越障礙培養(yǎng)學(xué)生創(chuàng)新能力的有效措施
- 跨領(lǐng)域視角下的安全工作與生產(chǎn)計劃整合
- DB3702T 45.1-2024地理標志產(chǎn)品 平度牛肉 第1部分:生產(chǎn)技術(shù)規(guī)程
- 二手貨物買賣合同范文
- 中外合資企業(yè)職工住房公積金合同范本
- 中外合作經(jīng)營企業(yè)合同范本
- 中外合資飯店租賃合同模板
- 專利實施許可合同協(xié)議
- 中外原材料供應(yīng)合同樣本
- 西安經(jīng)濟技術(shù)開發(fā)區(qū)管委會招聘筆試真題2024
- 六年級2025寒假特色作業(yè)
- (八省聯(lián)考)云南省2025年普通高校招生適應(yīng)性測試 物理試卷(含答案解析)
- 2025藥劑科工作人員工作計劃
- 春節(jié)節(jié)后安全教育培訓(xùn)
- 2025年新高考數(shù)學(xué)一輪復(fù)習(xí)第5章重難點突破02向量中的隱圓問題(五大題型)(學(xué)生版+解析)
- 水土保持方案投標文件技術(shù)部分
- 印刷品質(zhì)量保證協(xié)議書
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- 2023年浙江省公務(wù)員錄用考試《行測》題(A類)
- CQI-23模塑系統(tǒng)評估審核表-中英文
評論
0/150
提交評論