webwork培訓(xùn)多媒體課件_第1頁(yè)
webwork培訓(xùn)多媒體課件_第2頁(yè)
webwork培訓(xùn)多媒體課件_第3頁(yè)
webwork培訓(xùn)多媒體課件_第4頁(yè)
webwork培訓(xùn)多媒體課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

WebWork培訓(xùn)作者:moxie(安子)學(xué)員要求:掌握J(rèn)ava、Jsp、JavaServlet,并有一定的Web編程經(jīng)驗(yàn)課程目的:理解WebWork的核心原理,掌握WebWork開發(fā)的相關(guān)知識(shí),并能使用WebWork進(jìn)行實(shí)際開發(fā)1webwork培訓(xùn)目錄WebWork入門WebWork原理WebWork標(biāo)簽庫(kù)和ELWebWork實(shí)例2webwork培訓(xùn)WebWork原理MVC模式MVC最初是在Smalltalk-80中被用來(lái)構(gòu)建用戶界面Model實(shí)現(xiàn)了應(yīng)用領(lǐng)域的業(yè)務(wù)模型View用來(lái)展現(xiàn)模型中的數(shù)據(jù)和內(nèi)部狀態(tài)Control也稱為Dialog,它協(xié)調(diào)Model與View,把用戶請(qǐng)求翻譯成系統(tǒng)識(shí)別的事件3webwork培訓(xùn)J2eeWebFramework之現(xiàn)狀WebWork:最靈活、簡(jiǎn)單的Web框架SpringWebFramework:最全面的Web框架Struts:資源最豐富的Web框架Tapestry:組件化最完美的Web框架JSF:最接近的Web框架Portal:最適合集成的Web框架4webwork培訓(xùn)WebWork概述XWork1WebWork1WebWork2

Web

Non-web5webwork培訓(xùn)Action請(qǐng)求的動(dòng)作都對(duì)應(yīng)于一個(gè)相應(yīng)的Action一個(gè)Action是一個(gè)獨(dú)立的工作單元和控制命令它必需要實(shí)現(xiàn)XWork里的Action接口publicinterfaceActionextendsSerializable{

publicstaticfinalStringSUCCESS="success";publicstaticfinalStringNONE="none";publicstaticfinalStringERROR="error";publicstaticfinalStringINPUT="input";publicstaticfinalStringLOGIN="login";

publicStringexecute()throwsException;}6webwork培訓(xùn)例子-用戶注冊(cè)register.jspxwork.xmlregisterSuccess.jspregister.action7webwork培訓(xùn)ActionSupport提供Action常用功能的一個(gè)基類錯(cuò)誤消息的支持

actionandfieldspecificerrors

fielderrorsareautomaticallysupportedbyviews國(guó)際化支持

1resourcebundleperaction pervasiveUIsupportforretrievingmessages8webwork培訓(xùn)ActionContext一次Action調(diào)用都會(huì)創(chuàng)建一個(gè)ActionContext調(diào)用:ActionContextcontext=ActionContext.getContext()在WebWork中,它通過(guò)包裝提供了對(duì)Servlet的訪問(wèn):HttpSession——context.getSession()

HttpServletRequestparameters——context.getParameters()ServletActionContext,繼承ActionContext。可以直接訪問(wèn)servlet相關(guān)的API:PageContext,HttpServletRequest,HttpServletResponse,ServletConfig,ServletContext9webwork培訓(xùn)二、WebWork原理XWork的層次:ActionProxyActionInvocationActionActionProxy:管理Action的生命周期,它是設(shè)置和執(zhí)行Action的起始點(diǎn)。ActionInvocation:在ActionProxy層之下,它表示了Action的執(zhí)行狀態(tài)。它持有Action實(shí)例和所有的Interceptor10webwork培訓(xùn)WebWork原理11webwork培訓(xùn)Interceptors"PracticalAOP"verysimple,noexternaldependenciesallowsyoutointerceptactioninvocationsHelpdecoupleandcomponentizeyourcodeInterceptorsareorganizedinto'stacks'listsofinterceptorsappliedinsequence.appliedtoanyactionorpackageofactionsWebWorkismostlyimplementedasaseriesofXWorkinterceptors12webwork培訓(xùn)例子-TimerInterceptorpublicclassTimerInterceptorimplementsInterceptor{ ...

publicStringintercept(ActionInvocationdispatcher)...{ longstartTime=System.currentTimeMillis();

Stringresult=dispatcher.invoke();

longexTime=System.currentTimeMillis()-startTime; (dispatcher.getProxy().getActionName()+"ranin"+exTime+"ms."); returnresult;

}}xwork.xml<interceptors> <interceptorname="timer" class="erceptor.TimerInterceptor"/></interceptors>13webwork培訓(xùn)Interceptor的執(zhí)行順序Interceptor截獲Action的執(zhí)行,并在它的之前或之后調(diào)用相應(yīng)的方<interceptor-stackname="xaStack"> <interceptor-refname="thisWillRunFirstInterceptor"/> <interceptor-refname="thisWillRunNextInterceptor"/> <interceptor-refname="thisWillRunLastInterceptor"/></interceptor-stack>thisWillRunFirstInterceptor thisWillRunNextInterceptor thisWillRunLastInterceptor MyAction1 MyResult(result) thisWillRunLastInterceptor thisWillRunNextInterceptorthisWillRunFirstInterceptor14webwork培訓(xùn)ValueStack由OGNL框架實(shí)現(xiàn)可以把它簡(jiǎn)單的看作一個(gè)ListStackObject:放入stack中的對(duì)象,一般是action。StackContext(map):stack上下文,它包含一些列對(duì)象,包括request/session/attr/applicationmap等。EL:存取對(duì)象的任意屬性,調(diào)用對(duì)象的方法,遍歷整個(gè)對(duì)象結(jié)構(gòu)圖。15webwork培訓(xùn)ResultTypeResult 它是Action執(zhí)行之后返回的一個(gè)字符串常量 它表示Action執(zhí)行完成的狀態(tài)。ResultType

它是一個(gè)類 它在Action執(zhí)行,并返回result之后調(diào)用 它用來(lái)決定WebWork使用什么方式展現(xiàn)界面<result-typename="dispatcher"class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult"default="true"/><resultname="success"type="dispatcher">/register/registerSuccess.jsp</result>16webwork培訓(xùn)三、WebWork標(biāo)簽庫(kù)和EL<ww:propertyvalue=“”/>取值輸出<ww:iteratorvalue=“”status=“”/>迭代標(biāo)簽,可以輸出Collection,Iterator,Enumeration,Map,array,XMLNode,orXMLNodeList status:用來(lái)取得迭代器的狀態(tài):getCount(),getIndex(),isFirst(),isLast(),isEven(),isOdd()<ww:iftest=“”></ww:if> <ww:elseiftest=“”></ww:eleseif> <ww:else></ww:else>17webwork培訓(xùn)ExpressionLanguageOGNLExpressionResultgetEmployee().getName()employee.toStringgetEmployee().toString()employee.relations[0]FirstelementoftheRelationscollectionnamein{null,"Rick"}TrueisnameisnullorRickemployee.relations.{name}CallsgetName()oneachrelationsinthecollectionreturninganewcollection例子-員工登記18webwork培訓(xùn)四、實(shí)例驗(yàn)證多模塊處理一個(gè)Action類多方法文件上傳防止重復(fù)提交進(jìn)度條顯示19webwork培訓(xùn)驗(yàn)證XWork驗(yàn)證框架驗(yàn)證Action的屬性減弱驗(yàn)證與Action之間的耦合 驗(yàn)證信息存儲(chǔ)在獨(dú)立的xml文件中 驗(yàn)證出錯(cuò)信息放置在Action中可插拔的驗(yàn)證類驗(yàn)證機(jī)制有Interceptor實(shí)現(xiàn)20webwork培訓(xùn)已提供的驗(yàn)證類ValidatorResultRequiredFieldfield!=nullRequiredStringfield!=null&string.length()>0IntRangeIntegerisinagivenrangeDateRangeDateisinagivenrangeEmailValidemailfieldURLValidURLfieldExpression/FieldExpressionAnyOGNLexpressionevaluatestotrueeg.!="dog"AllowsyoutocreateverypowerfulvalidationsusingjustXMLandyourexistingmodel21webwork培訓(xùn)例子-注冊(cè)驗(yàn)證register.jspxwork.xmlregisterSuccess.jspregister.actionRegisterAction-validation.xmlregister.jsp驗(yàn)證出錯(cuò)22webwork培訓(xùn)多模塊Include:使用多個(gè)XWork配置文件Package:package之間可以繼承Namespace:用來(lái)區(qū)分不同package中的action23webwork培訓(xùn)一個(gè)Action類多方法方法要求:無(wú)參數(shù),返回一個(gè)字符串類型,拋出Exception,例如:publicStringdoDefault()throwsExcetpion{ returnINPUT;}定義方式 1、直接訪問(wèn),actionName!methodName.action。例如:register!doDefault.action 2、在XWork中定義,使用method屬性。例如:<actionname="registerDefault"class="com.skyon.demo.register.RegisterAction"

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論