`

struts2中的拦截器与过滤拦截器

    博客分类:
  • ssh
 
阅读更多

注:defaultStack是每个<action/>默认的拦截器栈。然而当用户在<action>中放入了自定义的拦截器的时候,就必须再显式的放入defaultStack。

struts2之所以能在Action类里能做那么多功能,就是依赖于其默认的拦截器栈里定义的各种拦截器。

用户可以配置自己的拦截器栈作为默认的拦截器栈:

只需将配置中的注释解开,<action/>配置里的<interceptor/>也就无需写了。此时自定义的myStack代替了defaultStack拦截器栈

 

实际开发中,往往配置多个拦截器栈,配置于不同业务模块的<action/>中。

但是注意默认的拦截器栈只能是一个。

 

2. 方法过滤拦截器

 

默认情况下我们为某个Action定义了拦截器,则这个拦截器会拦截该Action的所有方法。有些情况下,我们无需拦截所有的方法,此时就需要使用方法过滤拦截器。

 

方法过滤拦截器使用方法与普通的拦截器没什么区别:

 

方法过滤拦截器类继承MethodFilterInterceptor

重写的是doIntercept(ActionInvocation invacation)方法

 

<action/>配置中:

<!--放入上面自定义的拦截器-->

<interceptor-ref name="isLogin">

    <!-- 指定login和register方法不需要被拦截-->

    <param name="excludeMethods">login,register</param>

    <!-- 指定execute方法需要被拦截-->

    <param name="includeMethods">execute</param>

</interceptor>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics