第8單元Struts2框架技術(shù)入門_第1頁
第8單元Struts2框架技術(shù)入門_第2頁
第8單元Struts2框架技術(shù)入門_第3頁
第8單元Struts2框架技術(shù)入門_第4頁
第8單元Struts2框架技術(shù)入門_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第第8Struts 2 8Struts 2 框架技術(shù)框架技術(shù)入門入門Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥單元描述單元描述網(wǎng)絡(luò)給人們帶來了一個繽紛絢麗的世界,那么上網(wǎng)瀏覽的網(wǎng)頁是用什么語言編寫的呢?這些頁面,主要是用HTML語言編寫。HTML是英語“Hypertext Marked Language”的縮寫,即“超文本標(biāo)記語言”,它不是編程語言,是一種用來制作超文本文檔的簡單描述性標(biāo)記語言。本單元的主要任務(wù)就是通過任務(wù)需求了解HTML的基礎(chǔ)知識。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥單元目標(biāo)單元目標(biāo)

2、了解Struts 2的發(fā)展歷史;了解Struts 2的體系結(jié)構(gòu);熟悉Struts 2框架技術(shù)的工作原理;理解Struts 2的配置;能夠使用Struts 2框架技術(shù)實現(xiàn)簡單應(yīng)用程序。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1任務(wù)任務(wù)1引入性案例引入性案例任務(wù)描述及任務(wù)目標(biāo):任務(wù)描述及任務(wù)目標(biāo):使用現(xiàn)有技術(shù)完成用戶登錄系統(tǒng)的開發(fā)。該案例要求在登錄界面上輸入用戶名和密碼,單擊登錄按鈕后,如果用戶輸入的用戶名和密碼與系統(tǒng)指定的用戶名和密碼相同,則進入歡迎頁面,表明登錄成功,并在歡迎頁面上顯示用戶名,否則顯示登錄失敗。Java EEJava EE框架技

3、術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.1解決方案解決方案(1)創(chuàng)建視圖頁面:login.jsp、success.jsp和error.jsp;(2)創(chuàng)建資源信息文件:Aperties; (3)創(chuàng)建數(shù)據(jù)模型:User.java;(4)創(chuàng)建Action:LoginAction.java;(5)創(chuàng)建常量文件:Constant.java;Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.1解決方案解決方案(6)為解決中文亂碼問題,創(chuàng)建過濾器Servelt:CharacterEncodingFilter.java

4、;(7)配置validation.xml;(8)配置struts-config.xml;(9)配置web.xml;(10)發(fā)布工程。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.2具體實現(xiàn)具體實現(xiàn)1創(chuàng)建視圖頁面視圖頁面login.jsp、success.jsp2創(chuàng)建資源信息文件3創(chuàng)建數(shù)據(jù)模型4創(chuàng)建Action5創(chuàng)建常量文件Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.2具體實現(xiàn)具體實現(xiàn)6創(chuàng)建過濾器Servelt7配置validation.xml;8配置struts-config.xml9配置web.

5、xml10發(fā)布工程。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.3分析不足之處分析不足之處該案例使用Struts 1技術(shù)實現(xiàn)了用戶登錄的功能。盡管使用了Struts 1框架但是仍然存在不足之處。在在Action類中,類中,Struts 1要求要求Action類是面向抽象類編程而類是面向抽象類編程而不是面向接口編程。不是面向接口編程。Struts 1過分依賴于過分依賴于Servlet,Action類依賴于類依賴于Servlet API。所有的所有的ActionForm必須擴展必須擴展基類。其他的基類。其他的JavaBean不能不能作作Action

6、Form,需要需要創(chuàng)建多創(chuàng)建多余的類捕獲輸入。余的類捕獲輸入。盡管盡管DynaActionForm替代替代ActionForm,但是依然需要,但是依然需要在配置文件中重新描述已經(jīng)在配置文件中重新描述已經(jīng)存在的存在的JavaBean。有沒有一種好的方有沒有一種好的方法,來解決這些問法,來解決這些問題呢?題呢?Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.1.3分析不足之處分析不足之處采用基于MVC體系結(jié)構(gòu)的成熟性框架Struts 2,就能有效的解決上述問題,提高開發(fā)效率。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:

7、趙彥8.2任務(wù)任務(wù)2Struts 2簡介簡介任務(wù)描述及任務(wù)目標(biāo):任務(wù)描述及任務(wù)目標(biāo):和Struts 1一樣,Struts 2仍然是一個MVC框架,作用也類似。但是使用Struts 1架構(gòu)開發(fā)的系統(tǒng)不能升級為Struts 2架構(gòu),需要重新實現(xiàn),因為Struts 1與Struts 2有本質(zhì)的區(qū)別。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.2.1Struts 2的發(fā)展歷史的發(fā)展歷史Apache Struts是一個用來開發(fā)Java Web應(yīng)用的開源框架。最初的創(chuàng)始人是Craig R. McClanahan,之后Apache軟件基金會于2002年接管了該項

8、目。Struts提供了一個非常優(yōu)秀的架構(gòu)使得組織基于HTML格式與Java代碼的JSP與Servlet應(yīng)用開發(fā)變得非常簡單。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.2.2Struts 2與與WebWork 2、Struts 1的關(guān)系的關(guān)系根據(jù)Struts 2官方網(wǎng)站的介紹,Struts 2就是WebWork 2,WebWork 2就是Struts 2。Struts 2可以看做是借Struts的名氣推廣的WebWork框架。課本181頁表8-1給出了Struts 1與Struts 2的主要區(qū)別。Java EEJava EE框架技術(shù)進階式教程框架技

9、術(shù)進階式教程 作者:趙彥作者:趙彥8.3任務(wù)任務(wù)3Struts 2的體系結(jié)構(gòu)的體系結(jié)構(gòu)任務(wù)描述及任務(wù)目標(biāo):任務(wù)描述及任務(wù)目標(biāo):Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)有非常大的差別,這是因為Struts 2使用了WebWork框架技術(shù),不是沿用Struts 1的核心技術(shù),因此Struts 2看起來更像WebWork。Struts 2與Struts 1最大的不同是Struts 2使用了大量的攔截器來處理用戶請求,從而將業(yè)務(wù)邏輯控制器和Servlet 、API分離。該任務(wù)將重點講述Struts 2的體系結(jié)構(gòu)及工作機制。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程

10、作者:趙彥作者:趙彥8.3.2Struts 2的體系結(jié)構(gòu)的體系結(jié)構(gòu)Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制 “.action”結(jié)尾的請求,Struts 2框架會攔截處理,具體步驟如下:(1)客戶端瀏覽器發(fā)送請求,客戶端會初始化一個指向Servlet容器;Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(2)請求要經(jīng)過一系列的過濾器(Filter;Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥

11、作者:趙彥8.3.3Struts 2的工作機制的工作機制(3)接著核心控制器FilterDispatcher被調(diào)用,F(xiàn)ilterDispatcher詢問ActionMapper來決定是否調(diào)用Action,以及調(diào)用哪個Action;Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(4)如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy;Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Str

12、uts 2的工作機制的工作機制(5)ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調(diào)用的Action。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(6)ActionProxy創(chuàng)建一個ActionInvocation的實例。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(7)ActionInvocation實例使用命名模式來調(diào)用,在調(diào)用Action的execute方法之前,S

13、truts 2會調(diào)用一系列的攔截器以提供一些通用的功能,如workflow、校驗或文件上傳等功能。這些攔截器的組合被稱為攔截器鏈。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(8)在調(diào)用完攔截器鏈之后,Struts 2會調(diào)用Action的execute方法。在execute方法中就會執(zhí)行用戶的相關(guān)操作,如執(zhí)行某種數(shù)據(jù)庫操作,處理業(yè)務(wù)邏輯等。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.3.3Struts 2的工作機制的工作機制(9)一旦Action執(zhí)行完畢,Act

14、ionInvocation負責(zé)根據(jù)struts.xml中的配置找到相應(yīng)的返回結(jié)果。將處理結(jié)果信息返回到瀏覽器,這些結(jié)果可以是HTML頁面、JSP頁面、圖像,也可以是其他的任何Web資源。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4任務(wù)任務(wù)4Struts 2的配置的配置任務(wù)描述:任務(wù)描述:與Struts 2相關(guān)的配置文件有好幾個,常用的有web.xml、perties、struts.xml等。web.xml中配置了Struts 2的分發(fā)器Filter。struts.xml配置了Struts 2的A

15、perties配置了Struts 2的一些屬性,例如Struts 2的后綴、上傳文件大小、上傳文件夾等信息。任務(wù)目標(biāo):任務(wù)目標(biāo):了解Struts 2的配置文件,并掌握Struts 2的基本配置。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.1web.xml的配置的配置FilterDispatcher是一個Servlet過濾器,它是整個Web應(yīng)用的配置項,以下是一個FilterDispatcher的例子。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.2perties的配置的配置在開

16、發(fā)環(huán)境中,往往要修改一下幾個屬性。(1)struts.i18n.reload(2)struts.devMode(3)struts.configuration.xml.reload(4)struts2.url.http.port(5)struts.multipart.saveDir(6)struts.action.extension=action(7)struts.configeration.filesJava EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.3struts.xml的配置的配置struts.xml是Struts 2的核心配置文件,主要用于配置和

17、開發(fā)人員編寫的Action、JSP、攔截器等,另外perties中的配置也可以配置在struts.xml中。具體配置如下。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.4package的配置的配置Struts 2中的包可以擴展另外的包,從而“繼承”原有包的所有定義,并可以添加自己包特有的配置,以及修改原有包的部分配置,從這一點上看,Struts 2中的包更像Java中的類。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.5命名空間的配置命名空間的配置元素的namespace屬性可以

18、將包中的action配置為不同的名稱空間。當(dāng)Struts 2接收到一個請求的時候,它會將請求的URL分為namespace和action名字兩部分。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.5任務(wù)任務(wù)5進階式案例進階式案例第一個第一個Struts 2程序程序任務(wù)描述:任務(wù)描述:根據(jù)Struts 2框架的工作原理和基本思想,對引入性案例進行修改,完成基于Struts 2框架的登錄系統(tǒng)的開發(fā)。運行效果和引入性案例相同,如圖8-1、8-2所示。任務(wù)目標(biāo):任務(wù)目標(biāo):通過該任務(wù),讀者可以充分理解Struts 2相對于Struts 1的優(yōu)勢所在。Java EEJava EE框架技術(shù)進階式教程框架技術(shù)進階式教程 作者:趙彥作者:趙彥8.4.1解決方案解決方案(1)創(chuàng)建視圖頁面:login.jsp、success.jsp、error.jsp;(2)創(chuàng)建Action:LoginAction.java;(3)為解決中文亂碼問題,創(chuàng)建過濾器Servelt:CharacterEncodingFilter.java;(4)配置web

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論