拦截器的本质:

  拦截器就是一个类,一个实现了超级接口Interceptor的类。Interceptor接口里定义了三个方法 init(),destory(),intercept()。其中inercept()是核心方法,该方法的参数是invocation,它的类型是ActionInvocatio接口,该接口定义了拦截的核心方法invoke();

  拦截器体现的面向切面编程思想(AOP),在目标代码执行之前或执行之后插入必要的辅助业务,来降低系统的耦合度。Struts2拦截器的目标代码就是Action。

使用拦截器的步骤:

  1.先创建一个实现Interceptor接口的类。该类是拦截器执行的核心代码,在目标对象的前后执行。

    要注意的是Interceptor是超级接口,它实现了三个方法。另外你也可以继承AbstractInterceptor抽象类,只需实现interceptor()方法就行了。另外还可以继承MethodFilterInterceptor抽象类,只需实现doIntercept()方法。

  2.(要点)在Struts.xml的package中配置拦截器:首先声明拦截器,然后把自定义的拦截器放入拦截器栈中。要想对哪个Action进行拦截,在action标签里引用配置的拦截器就行了。

    在配置拦截器时很容易出错,收集以下资料参考:

      http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html

拦截器的执行顺序:

  之所以叫拦截器栈就说明了它的执行顺序,假如一个拦截器栈里有a,b,c三个拦截器,则它们的执行顺序是a,b,c,action,c,b,a。   

  

    

Struts2拦截器总结的更多相关文章

  1. Struts2 拦截器配置以及实现

    @(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...

  2. struts2 拦截器

    拦截器:对Action的访问.可以拦截到Action中某个方法.与过滤器不同,过滤器过滤的是请求.过滤JSP.html.但是拦截器不能拦截jsp.html的访问. Struts2 拦截器在访问某个 A ...

  3. Struts2拦截器的使用 (详解)

    Struts2拦截器的使用 (详解) 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈default ...

  4. struts2拦截器

    一.自定义拦截器 struts2拦截器类似于servlet过滤器 首先定义一个拦截器这个拦截器实现了Interceptor接口: package cn.orlion.interceptor; impo ...

  5. Struts2拦截器模拟

    前言: 接触Struts2已经有一段时间,Student核心内容就是通过拦截器对接Action,实现View层的控制跳转.本文根据自身理解对Struts2进行一个Java实例的模拟,方便大家理解! 示 ...

  6. Struts2拦截器初涉

    Struts2拦截器初涉 正在练习struts,本例是从一个pdf上摘抄的例子,那本pdf都不知道叫什么名字,不过感觉很适合初学者. 在这里要实现一个简单的拦截器"GreetingInter ...

  7. 浅谈Struts2拦截器的原理与实现

    拦截器与过滤器           拦截器是对调用的Action起作用,它提供了一种机制可以使开发者定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了 ...

  8. 基于SSH2框架Struts2拦截器的登录验证实现(转)

        大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了.那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证.     修改数 ...

  9. struts2拦截器interceptor的三种配置方法

    1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...

  10. Struts2拦截器原理以及实例

    一.Struts2拦截器定义 1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. ...

随机推荐

  1. Mac  任何选项没有了怎么办?

    1.如果需要恢复允许"任何来源"的选项,即关闭 Gatekeeper,请打开终端 2.然后使用 spctl 命令:  sudo spctl --master-disable

  2. asp.net验证控件中常用的正则表达式

    只能输入数字:“^[0-9]*$” 只能输入n位的数字:“^\d{n}$” 只能输入至少n位数字:“^\d{n,}$” 只能输入m-n位的数字:“^\d{m,n}$” 只能输入零和非零开头的数字:“^ ...

  3. 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式

    一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...

  4. Java web 基础

  5. C++关键字(1)——const

    1. const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰 ...

  6. 在webstrorm中配置好es6 babel

    第一步,新建一个项目,我这里建立了基于express 的node项目 第二步:将JavaScript语言版本切换为ECMAScript6 点击File —>settings,弹出设置框.把js的 ...

  7. 最近做OpenWrt的总结

    用到了哪些东西 需要在OpenWrt上开发一个客户端,用C语言写还比较方便,最开始在linux上跑,后面移植到路由器上,做成ipk.除了稍微修改了下Makefile,其他的什么都没改. 因为需要做个配 ...

  8. svn服务器配置小记

    在这里/opt/svndata/repos1创建svn版本库svnadmin create /opt/svndata/repos1 创建成功后会在/opt/svndata/repos1目录下生成con ...

  9. log实例

    配置详解见2014.10月篇 log4j的pom.xml <dependency> <groupId>log4j</groupId> <artifactId& ...

  10. Oracle EBS-SQL (SYS-4):sys_职责查询.sql

    select t.RESPONSIBILITY_NAME from apps.FND_RESPONSIBILITY_VL t where t.RESPONSIBILITY_NAME like '%MR ...