网站大量收购闲置独家精品文档,联系QQ:2885784924

基于MVC的WEB开发_8.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MVC的WEB开发_8

基于MVC的WEB开发 Struts 2 框架应用开发 教师:唐光义 第8章 Struts 2 框架的拦截器 8.1 配置和使用拦截器 8.2自定义拦截器 8.3拦截器深度剖析 8.4内置拦截器 8.5 拦截器完成权限控制 8.6 使用拦截器注解 8.1 配置和使用拦截器 8.1 配置和使用拦截器 Struts2拦截器初识(3) 8.1 配置和使用拦截器 官方定义:拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义一段代码,使其在一个Action执行之前或之后被调用执行,也可以在一个Action执行前阻止其执行。同时也是提供了一种可以提取Action中可重用部分的方式。 简单地说:拦截器(Interceptor)是一个实现了一定功能的类,以一种可插拔的方式被定义在某个Action执行的之前或之后,用来完成特定的功能。当为Action添加该功能的时候就配置该拦截器,当为Action减少该功能的时候就取消配置该拦截器。 拦截器栈(Interceptor Stack,在WebWork中称为拦截器链Interceptor Chain)。拦截器栈就是一堆拦截器的集合体,它将这些拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器栈中的拦截器就会按其之前定义的顺序被调用。 8.1 配置和使用拦截器 拦截器(Interceptor)是动态拦截Action调用的对象,类似于Servlet中的过滤器。在执行Action的业务逻辑处理方法(execute())之前,Struts2会首先执行在struts.xml中引用的拦截器。 拦截器是struts2的一个重要特性。Struts2框架的大多数核心功能都是通过拦截器来实现的,像避免表单重复提交、类型转换、对象组装、验证、文件上传等,都是在拦截器的帮助下实现的。拦截器之所以称为“拦截器”,是因为它可以在Action执行之前和执行之后拦截调用。 Struts2将它的核心功能放到拦截器中实现,而不是分散到Action中实现,有利于系统的解耦,使得功能的实现类似于个人电脑的组装,变成了可插拔的,需要某个功能就“插入”一个拦截器,不需要某个功能就“拔出”一个拦截器。你可以任意组合拦截器来为Action提供附加的功能,而不需要修改Action的代码。 8.1 配置和使用拦截器 拦截器围绕着Action和Result的执行而执行,其工作方式如图: 8.1 配置和使用拦截器 从图中可以看到,在Action和Result执行之前,为Action配置的拦截器将首先被执行,在Action和Result执行之后,拦截器将重新获得控制权,然后按照与先前调用相反的顺序依次执行。在整个执行过程中,任何一个拦截器都可以选择直接返回,从而终止余下的拦截器、Action和Result的执行。例如:当一个未授权的用户访问受保护的资源时,执行身份验证的拦截器可以直接返回。 8.1 配置和使用拦截器 8.1 配置和使用拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特性。这些内置的拦截器在struts-default.xml中配置。 8.1 配置和使用拦截器 8.1 配置和使用拦截器 将多个截拦器组合成一个截拦器栈配置 interceptor-stack name=mystack interceptor-ref name=first/interceptor-ref interceptor-ref name=second/interceptor-ref interceptor-ref name=defaultStack/interceptor-ref /interceptor-stack 使用 action name=test class=com.aptech.actions.TestAction interceptor-ref name=mystack/interceptor-ref /action 8.1 配置和使用拦截器 Struts8_1 测试程序耗时 8.2自定义拦截器 自定义拦截器及其使用: 1.直接或间接实现接口erceptor.Interceptor?? 2.或者继承类erceptor.AbstractInterceptor 3.通过interceptor元素来定义拦截器 4.通过interceptor-ref元素来使用拦截器 8.2自定义拦截器 在struts2中要编写拦截器类,必须实现erceptor.Interceptor接口,该接口定义了如下的三个方法: void init(): 该方法在拦截器实例创建后、intercept()方法被调用之前调用,用于初始化拦截器所需要的资源,例如数据库连接的初始化。该方法只执行一次

文档评论(0)

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

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

1亿VIP精品文档

相关文档