1.Interceptor简介
struts2中的interceptor它是基于spring aop思想,而aop思想它本质上是通过动态代理来实现,strtus2的拦截器它主要是拦截Action的操作,在action的执行前或执行后进行一些其它的功能操作. 多个拦截器可以形成一个拦截器链,在访问它们时依次访问.
2.自定义Interceptor
(1)定义Interceptor
(2)在struts.xml文件中配置Intercepor
格式如下图: 注:当引入自定义拦截器时,默认的defaultStack就不会导入,需要手动配置上去
此处是将defaultStack和两个自定义拦截器封装成了一个拦截器链myStack.
(3)在Action的配置中引入配置好的拦截器
<action name="login" class="com.action.UserAction" method="login">
<result name="success">/index.jsp</result>
<interceptor-ref name="myStack"/>
</action>
3.Interceptor实现只拦截指定的方法
让Interceptor继承MethodFilterInterceptor类,在struts.xml配置时就可以指定要拦截的方法.
<interceptors>
<interceptor name="myInterceptor" class="com.utils.MyInterceptor">
//includeMethods是固定参数,代表只会拦截后面写到的方法
<param name="includeMethods">show,add,login(填写需要拦截的方法)</param>
</interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="myInterceptor"/>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>