webwork培训.ppt

上传人:scccc 文档编号:11371222 上传时间:2021-07-31 格式:PPT 页数:30 大小:326.50KB
返回 下载 相关 举报
webwork培训.ppt_第1页
第1页 / 共30页
webwork培训.ppt_第2页
第2页 / 共30页
webwork培训.ppt_第3页
第3页 / 共30页
webwork培训.ppt_第4页
第4页 / 共30页
webwork培训.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《webwork培训.ppt》由会员分享,可在线阅读,更多相关《webwork培训.ppt(30页珍藏版)》请在三一文库上搜索。

1、WebWork培训,作者:moxie(安子),学员要求:掌握Java、Jsp、JavaServlet,并有一定的Web编程经验 课程目的:理解WebWork的核心原理,掌握WebWork开发的相关知识,并能使用WebWork进行实际开发,1,精品培训课件PPT,目录,WebWork入门 WebWork原理 WebWork标签库和EL WebWork实例,2,精品培训课件PPT,WebWork原理,MVC模式 MVC最初是在Smalltalk-80中被用来构建用户界面 Model实现了应用领域的业务模型 View用来展现模型中的数据和内部状态 Control也称为Dialog,它协调Model与

2、View,把用户请求翻译成系统识别的事件,3,精品培训课件PPT,J2ee Web Framework之现状,WebWork: 最灵活、简单的Web框架 Spring Web Framework:最全面的Web框架 Struts: 资源最丰富的Web框架 Tapestry: 组件化最完美的Web框架 JSF: 最接近的Web框架 Portal: 最适合集成的Web框架,4,精品培训课件PPT,WebWork概述,XWork 1,WebWork 1,WebWork 2,Web,Non-web,5,精品培训课件PPT,Action,请求的动作都对应于一个相应的Action 一个Action是一个独

3、立的工作单元和控制命令 它必需要实现XWork里的Action接口,public interface Action extends Serializable public static final String SUCCESS = success; public static final String NONE = none; public static final String ERROR = error; public static final String INPUT = input; public static final String LOGIN = login; public St

4、ring execute() throws Exception; ,6,精品培训课件PPT,例子用户注册,register.jsp,xwork.xml,registerSuccess.jsp,register.action,7,精品培训课件PPT,ActionSupport,提供Action常用功能的一个基类 错误消息的支持 action and field specific errors field errors are automatically supported by views 国际化支持 1 resource bundle per action pervasive UI suppo

5、rt for retrieving messages,8,精品培训课件PPT,ActionContext,一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getContext() 在WebWork中,它通过包装提供了对Servlet的访问:HttpSession context.getSession() HttpServletRequest parameters context.getParameters() ServletActionContext,继承ActionContext。可以直接访问ser

6、vlet相关的API:PageContext,HttpServletRequest,HttpServletResponse,ServletConfig,ServletContext,9,精品培训课件PPT,二、WebWork原理,XWork的层次:,ActionProxy,ActionInvocation,Action,ActionProxy:管理Action的生命周期,它是设置和执行Action的起始点。 ActionInvocation:在ActionProxy层之下,它表示了Action的执行状态。它持有Action实例和所有的Interceptor,10,精品培训课件PPT,WebWo

7、rk原理,11,精品培训课件PPT,Interceptors,Practical AOP very simple, no external dependencies allows you to intercept action invocations Help decouple and componentize your code Interceptors are organized into stacks lists of interceptors applied in sequence. applied to any action or package of actions WebWork

8、 is mostly implemented as a series of XWork interceptors,12,精品培训课件PPT,例子 TimerInterceptor,public class TimerInterceptor implements Interceptor . . . public String intercept(ActionInvocation dispatcher) . long startTime = System.currentTimeMillis(); String result = dispatcher.invoke(); long exTime =

9、System.currentTimeMillis() - startTime; log.info(dispatcher.getProxy().getActionName() + ran in + exTime + ms.); return result; xwork.xml ,13,精品培训课件PPT,Interceptor的执行顺序,Interceptor截获Action的执行,并在它的之前或之后调用相应的方 thisWillRunFirstInterceptor thisWillRunNextInterceptor thisWillRunLastInterceptor MyAction1

10、MyResult (result) thisWillRunLastInterceptor thisWillRunNextInterceptor thisWillRunFirstInterceptor,14,精品培训课件PPT,ValueStack,由OGNL框架实现 可以把它简单的看作一个List Stack Object:放入stack中的对象,一般是action。 Stack Context(map):stack上下文,它包含一些列对象,包括request/session/attr/application map等。 EL:存取对象的任意属性,调用对象的方法,遍历整个对象结构图。,15,精

11、品培训课件PPT,ResultType,Result 它是Action执行之后返回的一个字符串常量 它表示Action执行完成的状态。 ResultType 它是一个类 它在Action执行,并返回result之后调用 它用来决定WebWork使用什么方式展现界面 /register/registerSuccess.jsp,16,精品培训课件PPT,三、WebWork标签库和EL,取值输出 迭代标签,可以输出Collection, Iterator, Enumeration, Map, array, XML Node, or XML NodeList status:用来取得迭代器的状态:get

12、Count(), getIndex(), isFirst(), isLast(), isEven(), isOdd() ,17,精品培训课件PPT,Expression Language,例子员工登记,18,精品培训课件PPT,四、实例,验证 多模块处理 一个Action类多方法 文件上传 防止重复提交 进度条显示,19,精品培训课件PPT,验证,XWork验证框架 验证Action的属性 减弱验证与Action之间的耦合 验证信息存储在独立的xml文件中 验证出错信息放置在Action中 可插拔的验证类 验证机制有Interceptor实现,20,精品培训课件PPT,已提供的验证类,21,精

13、品培训课件PPT,例子注册验证,register.jsp,xwork.xml,registerSuccess.jsp,register.action,RegisterAction-validation.xml,register.jsp,验证出错,22,精品培训课件PPT,多模块,Include:使用多个XWork配置文件 Package:package之间可以继承 Namespace:用来区分不同package中的action,23,精品培训课件PPT,一个Action类多方法,方法要求:无参数,返回一个字符串类型,抛出Exception,例如: public String doDefault

14、() throws Excetpion return INPUT; 定义方式 1、直接访问,actionName!methodName.action。例如:register!doDefault.action 2、在XWork中定义,使用method属性。例如: ,24,精品培训课件PPT,文件上传,fileUpload.jsp,xwork.xml,uploadSuccess.jsp,fileUpload.action,25,精品培训课件PPT,防止重复提交(double click ),在页面中设置 session.setAttribute(tokenName, token); 配置拦截器 TokenInterceptor TokenSessionStoreInterceptor:保存了上次操作的Invocation,26,精品培训课件PPT,进度条显示,waitInput,xwork.xml,waitSuccess.jsp,wait.action,wait.jsp,27,精品培训课件PPT,总结,重用(松耦合/无侵入):Action接口、Action与Web无关、Interceptor 功能强大:EL、验证框架 灵活:FormBean/数据Model、多视图支持,28,精品培训课件PPT,结束,谢谢各位!,29,精品培训课件PPT,Thank You,更多精品 敬请关注!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1