JAVA开发自学教材07Struts2深入课件.ppt

JAVA开发自学教材07Struts2深入课件.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * 第七章 Struts2深入 回顾与作业点评 Struts 2中开发一个Action有几种方法? package元素与Java中的包有什么异同之处? Result结果类型有哪些?有什么区别? 本章任务 实现自定义安全验证拦截器 实现租房网房屋信息分页显示 本章目标 掌握Struts 2架构 掌握Struts 2拦截器 掌握Struts 2自定义拦截器 Struts 2架构剖析 Struts 2执行流程 1、客户端向Servlet容器(如Tomcat)提交一个请求 2、请求经过一系列过滤器(如ActionContextCleanUp过滤器等) 3、核心控制器FilterDispatcher被调用,询问ActionMapper是否需要调用某个Action 4、如果ActionMapper决定需要调用某个Action,核心控制器把控制权委派给ActionProxy Struts 2执行流程 5、ActionProxy询问Configuration Manager(初始化自struts.xml) 6、ActionProxy创建一个ActionInvocation的实例 7、 ActionInvocation负责调用Action,在此之前会依次调用所有配置的拦截器 8、Action return之后,ActionInvocation负责根据结果码字符串构造Result对象 9、Result被执行 10、拦截器执行后置处理 11、过滤器做后置处理 Struts 2核心接口和类 ActionMapper 根据请求的URI查找是否存在对应Action调用 ActionMapping 保存调用Action的映射信息,如namespace、name等 ActionProxy 在XWork和真正的Action之间充当代理 ActionInvocation 表示Action的执行状态,保存拦截器、Action实例 Interceptor 可以在请求处理之前或者之后执行的Struts 2组件 Struts 2绝大多数功能通过拦截器完成 Struts执行流程简图 HttpServletRequest HttpServletResponse 核心控制器 Intercepter1 Intercepter2 Intercepter3 Action Result 为什么需要拦截器 早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足、可扩展性降低 Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦 什么是拦截器 Struts 2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能 拦截器方法在Action执行之前或者之后执行 拦截器栈 从结构上看,拦截器栈相当于多个拦截器的组合 在功能上看,拦截器栈也是拦截器 拦截器与过滤器原理很相似 为Action提供附加功能时,无需修改 Action代码,使用拦截器来提供 拦截器工作原理 拦截器的执行过程是一个递归的过程 三阶段执行周期: 1、做一些Action执行前的预处理 2、将控制交给后续拦截器或返回结果字符串 3、做一些Action执行后的处理 拦截器工作原理 拦截器示例 public class MyTimerInterceptor extends AbstractInterceptor{ public String intercept(ActionInvocation invocation) throws Exception { //预处理工作 long startTime = System.currentTimeMillis(); //执行后续拦截器或Action String result = invocation.invoke(); //后续处理工作 long execTime = System.currentTimeMillis() - startTime; System.out.println("The interval time is "+execTime+" ms"); //返回结果字符串 return result; } } Struts 2自带拦截器 Params拦截器 负责将请求参数设置为Action属性 servletConfig拦截器 将源于Servlet API的各种对象注入到Action fileUpload拦截器 对文件上传提供支持 excep

您可能关注的文档

文档评论(0)

5500082 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档