拦截器(interceptor)在Action和result执行之前或之后进行一些处理。
拦截器是用于拦截对Action的请求。
1、内置拦截器
<package extends="struts-default">
</package>
包中的所有未显示指定拦截器的Action,均使用默认拦截器。
2、自定义拦截器
1)定义类实现Interceptor接口;
2)重写Interceptor()方法;
3)struts.xml文件中定义拦截器;
4)Action指定拦截器。
ActionInvocation接口
getAction(); 获得当前访问Action对象
getActionContext(); 获得Action上下文,获取到请求中的参数、属性,会
拦截器是用于拦截对Action的请求。
1、内置拦截器
<package extends="struts-default">
</package>
包中的所有未显示指定拦截器的Action,均使用默认拦截器。
2、自定义拦截器
1)定义类实现Interceptor接口;
2)重写Interceptor()方法;
3)struts.xml文件中定义拦截器;
4)Action指定拦截器。
ActionInvocation接口
getAction(); 获得当前访问Action对象
getActionContext(); 获得Action上下文,获取到请求中的参数、属性,会
话中的数据,应用程序范围Application中数据。
3、拦截器的执行顺序
就是拦截器的使用顺序,即<action></action>标签中的<interceptor-
ref></intercep-tor-ref>的书写顺序。
4、拦截器栈
多个拦截器形成一个栈,只需要引用拦截器栈,达到使用栈中所有拦截器的目的
。
5、默认拦截器/拦截器栈
<package></package>包中,定义默认拦截器(栈),Action在没有引入拦截器
(栈)的情况下,使用默认拦截器(栈)。
6、方法拦截器
使用方法拦截器,可以控制拦截Action的哪些方法或不拦截Action的哪些方法。
自定义类继承MethodFilterInterceptor类;
<interceptor>
<param name="includeMethods">***,***</param> //指定要拦截
的方法
<param namincludeudeMethods">***,***</param> //指定不拦截
的方法
</initercepotor>
excludeMethods、excludeMethods均指定了某一个方法,以includeMethods为
主,即拦截这个方法。