《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第2章 Struts2基礎(chǔ)_第1頁
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第2章 Struts2基礎(chǔ)_第2頁
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第2章 Struts2基礎(chǔ)_第3頁
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第2章 Struts2基礎(chǔ)_第4頁
《輕量級(jí)Java EE程序設(shè)計(jì)及實(shí)踐》課件第2章 Struts2基礎(chǔ)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-1-掌握Struts2的框架結(jié)構(gòu)了解核心控制器StrutsPrepareAndExecuteFilter了解業(yè)務(wù)控制器Action了解Struts2支持的視圖組件掌握Struts2工作流程掌握Struts2相關(guān)文件配置目標(biāo)-2-Struts2框架概述Struts2是以WebWork的設(shè)計(jì)思想為核心,吸收Struts1的部分優(yōu)點(diǎn)后建立的一個(gè)兼容WebWork和Struts1的MVC框架保留了Struts1的簡(jiǎn)單易用性,并且充分利用了WebWork的攔截器機(jī)制(AOP思想),是一個(gè)具有高度可擴(kuò)展性的框架Struts2框架誕生后,取代了原有的Struts和WebWork框架。在短時(shí)間內(nèi)迅速成為MVC領(lǐng)域最流行的框架Struts2的目標(biāo)是使Web開發(fā)變得更加容易

-3-Struts2框架結(jié)構(gòu)Struts2中大量使用攔截器來處理用戶請(qǐng)求允許用戶的業(yè)務(wù)邏輯控制器與ServletAPI分離-4-Struts2控制器組件-StrutsPrepareAndExecuteFilterStrutsPrepareAndExecuteFilter是一個(gè)Servlet過濾器是Struts2的核心組件web.xml中配置StrutsPrepareAndExecuteFilter代碼:Struts2的控制器由兩部分組成:StrutsPrepareAndExecuteFilter和業(yè)務(wù)控制器Action

<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>-5-Struts2控制器組件-ActionAction是業(yè)務(wù)控制器Struts2中的Action類有如下優(yōu)勢(shì):Action類完全是一個(gè)POJO,具有良好的代碼重用性Action類無需與ServletAPI耦合,因此無論是應(yīng)用還是測(cè)試都非常簡(jiǎn)單Action類的execute()方法僅返回一個(gè)字符串作為處理結(jié)果,該處理結(jié)果可映射到任何的視圖或另一個(gè)ActionpublicStringexecute(){

}-6-Struts2配置文件–struts.xmlStruts.xml主要用來配置ActionStruts2的配置文件有兩種:配置Action的struts.xml文件配置Struts2全局屬性的perties文件<struts><!--指定Struts2處于開發(fā)階段,可以進(jìn)行調(diào)試--><constantname="struts.devMode"value="true"/><!--Struts2的Action都必須配置在package里--><packagename="p1"extends="struts-default"namespace="/admin"> <!--定義一個(gè)login的Action,實(shí)現(xiàn)類為com.dh.action.LoginAction--> <actionname="login"class="com.dh.action.LoginAction"> <!--配置execute()方法返回值所對(duì)應(yīng)的頁面--> <resultname="error">/error.jsp</result> <!--如果result標(biāo)簽不配置name屬性,其默認(rèn)為success--> <result>/success.jsp</result> </action></package></struts>-7-Struts2配置文件–pertiesSperties主要用來配置全局屬性#指定web應(yīng)用的默認(rèn)的編碼集,#相當(dāng)于調(diào)用HttpServletRequest的setCharacterEncoding方法struts.i18n.encoding=GBK#當(dāng)struts.xml修改后是否重新加載該文件,在開發(fā)階段最好打開struts.configuration.xml.reload=true#設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容,開發(fā)階段最好關(guān)閉struts.serve.static.browserCache=false-8-Struts2標(biāo)簽庫Struts2的標(biāo)簽庫也是Struts2框架的重要組成部分,提供了非常豐富的功能,這些標(biāo)簽不僅提供了表現(xiàn)層數(shù)據(jù)處理,而且提供了基本的流程控制功能,還提供了國際化、Ajax支持等功能。通過使用Struts2的標(biāo)簽,開發(fā)者可以最大限度的減少頁面代碼的編寫。-9-Struts2處理步驟客戶端瀏覽器發(fā)送一個(gè)請(qǐng)求,例如:/mypage.action。這個(gè)請(qǐng)求經(jīng)過核心控制器StrutsPrepareAndExecuteFilter過濾處理,StrutsPrepareAndExecuteFilter將請(qǐng)求轉(zhuǎn)交給相應(yīng)的Action代理。Action代理通過配置文件中的信息找到對(duì)應(yīng)的Action類,創(chuàng)建Action對(duì)象并調(diào)用其execute()方法。在調(diào)用Action的過程前后,涉及到相關(guān)攔截器的調(diào)用。攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,例如自動(dòng)化工作流、驗(yàn)證或文件上傳等功能。一旦Action執(zhí)行完畢,Action代理根據(jù)struts.xml中的配置信息找到execute()方法返回值對(duì)應(yīng)的結(jié)果。返回結(jié)果通常是視圖資源(如JSP頁面)或另一個(gè)Action。-10-基于Struts2的加法器在Struts2框架下開發(fā)加法器的具體步驟如下:配置Struts2應(yīng)用環(huán)境。創(chuàng)建add.jsp頁面,接收用戶輸入數(shù)據(jù)。創(chuàng)建業(yè)務(wù)邏輯類Calculator,實(shí)現(xiàn)數(shù)據(jù)的算術(shù)運(yùn)算。創(chuàng)建AddAction類,實(shí)現(xiàn)execute()方法。在struts.xml中配置AddAction。創(chuàng)建add_result.jsp頁面,顯示計(jì)算結(jié)果。-11-添加類庫-12-修改web.xml<filter> <!--配置Struts2框架的核心Filter--> <filter-name>struts2</filter-name> <!--配置Struts2核心Filter的實(shí)現(xiàn)類--> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class></filter><filter-mapping> <filter-name>struts2</filter-name> <!--匹配所有請(qǐng)求--> <url-pattern>/*</url-pattern></filter-mapping>-13-創(chuàng)建輸入頁面add.jsp……<formid="calcForm"method="post"action="add.action"><table> <tbody> <tr> <td>第一個(gè)數(shù)</td> <td><inputtype="text"name="num1"/></td> </tr> <tr> <td>第二個(gè)數(shù)</td>

<td><inputtype="text"name="num2"/></td> </tr> <tr> <td><inputtype="submit"value="加"/></td> </tr> </tbody></table></form>……-14-實(shí)現(xiàn)業(yè)務(wù)邏輯類CalculatorpublicclassCalculator{ publicdoubleadd(doublea,doubleb){ returna+b; } publicdoublesubtract(doublea,doubleb){ returna-b; } publicdoublemultiply(doublea,doubleb){ returna*b; } publicdoubledivide(doublea,doubleb){ //未判斷除數(shù)不能為零

returna/b; }}-15-創(chuàng)建業(yè)務(wù)控制器AddActionpublicclassAddAction{ privatedoublenum1; privatedoublenum2;

num1、num2的get、set方法

/** *調(diào)用業(yè)務(wù)邏輯方法,實(shí)現(xiàn)業(yè)務(wù),控制流程轉(zhuǎn)向 */ publicStringexecute(){ //新建業(yè)務(wù)邏輯對(duì)象

Calculatorbiz=newCalculator(); //調(diào)用業(yè)務(wù)邏輯方法,獲得返回值

doubleresult=biz.add(num1,num2); //將計(jì)算結(jié)果存入Session中

ActionContext.getContext().getSession().put("result",result); return"cal"; }}Struts2的Action可以通過ActionContext來訪問ServletAPI

-16-在struts.xml中配置業(yè)務(wù)控制器AddAction<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "/dtds/struts-2.0.dtd"><struts> <!--指定Struts2處于開發(fā)階段,可以進(jìn)行調(diào)試--> <constantname="struts.devMode"value="true"/> <!--Struts2的Action都必須配置在package里--> <packagename="p2"extends="struts-default"> <!--定義一個(gè)add的Action,實(shí)現(xiàn)類為AddAction--> <actionname="add" class="com.dh.ch02.action.AddAction"> <!--配置execute()方法返回值所對(duì)應(yīng)的頁面--> <resultname="cal">/add_result.jsp</result> </action> </package></struts>-17-創(chuàng)建顯示結(jié)果頁面result.jsp……<table> <tbody> <tr> <td>第一個(gè)數(shù)</td> <td>${param.num1}</td> </tr> <tr> <td>第二個(gè)數(shù)</td> <td>${param.num2}</td> </tr> <tr> <td>結(jié)果</td> <td>${sessionScope.result}</td> </tr> </tbody></table>……結(jié)果值是從session中提取的,而非request中

-18-Struts2與自定義框架的比較基于Struts2的加法器在原理上與自定義框架的加法器是一樣的。相比自定義框架的加法器實(shí)現(xiàn),基于Struts2的加法器在代碼上簡(jiǎn)化了許多;而且當(dāng)增加一個(gè)Action時(shí),只需在Struts2的配置文件中進(jìn)行簡(jiǎn)單配置即可,無需使用大量代碼進(jìn)行控制實(shí)現(xiàn)。另外Struts2框架還提供了許多功能,例如:異常處理、Struts2標(biāo)簽庫等,這些功使Struts2開發(fā)更加輕松和完善。-19-Struts2在Struts1基礎(chǔ)上發(fā)展起來的,但實(shí)質(zhì)上以WebWork為核心所有MVC框架都以控制器為核心,其中Struts2控制器由StrutsPre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論