TP04Struts2拦截器课件.pptx

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts 2深入 第四章 回顾与作业点评 简述Struts 2的执行过程? package元素与Java中的包有什么异同之处? Result结果类型有哪些?有什么区别? 2/42 预习检查 Struts 2中为什么需要拦截器 ? Struts 2中拦截器是如何工作的? 实现文件上传功能时,需要添加哪些jar文件 ? 3/42 本章任务 使用拦截器实现用户权限控制 使用Struts 2框架实现文件的上传下载 4/42 本章目标 掌握Struts 2架构 掌握Struts 2拦截器 掌握Struts 2框架的文件上传和下载 5/42 Struts 2架构剖析 6/42 Struts 2核心接口和类 核心接口和类 名称 作用 ActionMapper 根据请求的URI查找是否存在对应Action调用 ActionMapping 保存调用Action的映射信息,如namespace、name等 ActionProxy 在XWork和真正的Action之间充当代理 ActionInvocation 表示Action的执行状态,保存拦截器、Action实例 Interceptor 在请求处理之前或者之后执行的Struts 2组件 7/42 Struts执行流程简图 HttpServletRequest HttpServletResponse 核心控制器 Interceptor1 Interceptor2 Interceptor3 Action Result 8/42 为什么需要拦截器 早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足、可扩展性降低 Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦 9/42 什么是拦截器 Struts 2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能 拦截器方法在Action执行之前或者之后执行 拦截器栈 从结构上看,拦截器栈相当于多个拦截器的组合 在功能上看,拦截器栈也是拦截器 拦截器与过滤器原理很相似 为Action提供附加功能时,无需修改 Action代码,使用拦截器来提供 10/42 拦截器工作原理 拦截器的执行过程是一个递归的过程 三阶段执行周期: 1、做一些Action执行前的预处理 2、将控制交给后续拦截器或返回结果字符串 3、做一些Action执行后的处理 11/42 拦截器简单应用2-1 拦截器示例 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; } } 继承AbstractInterceptor类 重写intercept() 12/42 拦截器简单应用2-2 拦截器的简单配置 <package name="default" namespace="/" extends="struts-default"> <interceptors> <interceptor name="myTimer" class="erceptor.MyTimerInterceptor"> </interceptor> </interceptors> <action name="action" class="com.pb.action.MyTimerAction"> <result>/index.jsp</result> <interceptor-ref name="myTimer"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package> 定义拦 截器 定义单个

文档评论(0)

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

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

1亿VIP精品文档

相关文档