《Struts拦截器详细配置过程.doc》由会员分享,可在线阅读,更多相关《Struts拦截器详细配置过程.doc(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Struts2拦截器详细配置过程1:所有拦截器的超级接口Interceptor ,Action去实现这个接口;Interceptor它其中有三个方法(init(),destroy() ,interceptor(): Init()方法:在效劳器起动的时候加载一次,并且只加载一次; Destroy()方法:当拦截器销毁时执行的方法; Interceptor()方法:其中里边有一个参数invocationpublicString intercept(ActionInvocation invocation)throwsxception System.out.println(interceptor!);
2、 String result=invocation.invoke();returnresult;Invocation.invoke()是如果只有一个拦截器执行完这个方法后,会返回给视图,如果有多个拦截器,它顺序的执行完所有的拦截器,才返回给视图.2:可以在系统初始化中给拦截器指定默认的参数(也包括了定义拦截器方式)如下:在拦截器类中把hello当做属性set/get方式注入到拦截器类中;张钊钊也可以在使用拦截器的时候给它设置参数:就是在一个action的reslut下面配置上如下:welcome2.拦截器,拦截器栈与默认的拦截器之间的关系1:拦截器与拦截器栈是一个级别的,也就是说一个拦截器栈中
3、包括许多拦截器,一个拦截器栈中还可以包括许多拦截器栈,配置如下方式:张钊钊拦截器的使用:1.先定义;2.在引用使用;2:struts2中有一个系统默认的拦截器栈是defaultStack,如果你手动引用自己的拦截器,系统默认的拦截器栈将不起作用;这样必需手动引入系统的拦截器栈如果想改变系统默认的拦截器栈,可以这样配置:其中myStack是自己定义的拦截器栈名字;如果拦截器栈中有多个拦截器,在执行action之前的顺序跟配置拦截器的顺序一致,而在action之后执行的顺序是相反的;3:抽象的拦截器类AbstractInterceptor1:Interceptor这个超级拦截器接口,有三方法需要实
4、现,但是如果不想使用init();与destroy()方法,可以去继承这个抽象拦截器类;它的使用跟上边的没有什么区别;4:方法过滤拦截器MethodFilterInterceptor1:上边的拦截器都要是针对整个action的,如果针对某个方法进展拦截可以去继承这个类;它的使用跟上边的使用方法差不多,只是需要要配置它对那个方法进展拦截,方法过滤拦截器最好不要配置到自己设置默认的拦截器栈里边,自己手动配置.executeexecute其中includeMethods ,excludeMethods是固定写法: includeMethods包含拦截那些方法,多个方法需要用,隔开;excludeMe
5、htods是排除拦截的那些方法;5:鉴听器PreResultListener接口1:它的鉴听点在拦截器执行完某个action方法后,在渲染视图之前做一些事情;让某个类去实现这个接口;然后向需要它的拦截器中注册进去如下代码:publicclassMyInterceptor3extendsMethodFilterInterceptor privatestaticfinallongserialVersionUIDOverrideprotectedString doIntercept(ActionInvocationinvocation)throwsException /把鉴听器注册到拦截中去;invocation.addPreResultListener(newMyListener(); System.out.println(my Interceptor3); String result=arg0.invoke(); System.out.println(my interceptor3 finshed!);returnresult;第 8 页
限制150内