Struts2 拦截器详细配置过程

2014-11-23 17:52:28 · 作者: · 浏览: 19

拦截器几乎遍布每一个程序中,所以贴出拦截器配置的详细过程,希望能够帮到大家。

Struts2 拦截器详细配置过程

张钊钊

也可以在使用拦截器的时候给它设置参数: 就是在一个action 的reslut下面配置上如下:

/success. jsp

/register.jsp

welcome

2.拦截器,拦截器栈和默认的拦截器之间的关系

1:拦截器和拦截器栈是一个级别的,也就是说一个拦截器栈中包括许多拦截器, 一个拦截器栈中还可以包括许多拦截器栈,配置如下方式:

张钊钊

拦截器的使用:1.先定义;2.在引用使用;

2:struts2中有一个系统默认的拦截器栈是 defaultStack,如果你手动引用自己的拦截器,系统默认的拦截器栈将不起作用;这样必需手动引入系统的拦截器栈

如果想改变系统默认的拦截器栈,可以这样配置:

其中myStack是自己定义的拦截器栈名字; 如果拦截器栈中有多个拦截器,在执行action之前的顺序跟配置拦截器的顺序一致,而在action之后执行的顺序是相反的;

3:抽象的拦截器类AbstractInterceptor

1:Interceptor这个超级拦截器接口,有三方法需要实现,但是如果不想使用init(); 和destroy()

方法,可以去继承这个抽象拦截器类; 它的使用跟上边的没有什么区别;

4:方法过滤拦截器MethodFilterInterceptor

1:上边的拦截器都要是针对整个action的,如果针对某个方法进行拦截可以去继承这个类;

它的使用跟上边的使用方法差不多,只是需要要配置它对那个方法进行拦截,方法过滤拦截器

好不要配置到自己设置默认的拦截器栈里边,自己手动配置.

execute

execute

其中includeMethods ,excludeMethods是固定写法: includeMethods 包含拦截那些方法,多个方法需要用”,”隔开; excludeMehtods是排除拦截的那些方法;

5:鉴听器PreResultListener接口

1:它的鉴听点在拦截器执行完某个action方法后,在渲染视图之前做一些事情;让某个类去实现这个接口; 然后向需要它的拦截器中注册进去如下代码:

publicclass MyInterceptor3 extends MethodFilterInterceptor {

privatestaticfinallongserialVersionUID = 3756655410194005443L;

@Override

protected String doIntercept(ActionInvocation invocation) throws Exception {

//

把鉴听器注册到拦截中去;

invocation.addPreResultListener(new MyListener());

System.out.println("my Interceptor3");

String result=arg0.invoke();

System.out.println("my interceptor3 finshed!");

return result;

}

}