一.自定义拦截器:
struts2实现拦截器的方式有两种:
①.继承AbstractInterceptor类
②.实现Interceptor接口
1 @Override 2 public String intercept(ActionInvocation arg0) throws Exception { 3 System.out.println("开始记录日志..."); 4 //继续往下执行 5 String resultCode = arg0.invoke(); 6 System.out.println("结束记录日志..."); 7 return resultCode; 8 }
二.在struts.xml中配置拦截器
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <!-- 配置常量 --> 8 <constant name="struts.configuration.xml.reload" value="true" /> 9 10 <package name="user-package" extends="struts-default"> 11 12 <!-- 定义拦截器 --> 13 <interceptors> 14 <!-- 日志拦截器 --> 15 <interceptor name="myLogInterceptor" class="com.xyy.action.MyLogInterceptor" /> 16 <!-- 安全级别拦截器 --> 17 <interceptor name="mySecurityInterceptor" class="com.xyy.action.MySecurityInterceptor" /> 18 19 <!-- 定义拦截器栈 --> 20 <interceptor-stack name="myInterceptorStack"> 21 <interceptor-ref name="defaultStack" /> 22 <interceptor-ref name="myLogInterceptor"/> 23 <interceptor-ref name="mySecurityInterceptor"/> 24 </interceptor-stack> 25 </interceptors> 26 27 <!--第二种方式: 配置默认拦截器,这样就不必为每个action指定 --> 28 <default-interceptor-ref name="myInterceptorStack" /> 29 30 <action name="user_*" class="com.xyy.action.UserAction" method="{1}"> 31 <!-- 第一种方式:分别配置,顺序代表执行顺序 32 <interceptor-ref name="defaultStack" /> 33 <interceptor-ref name="myLogInterceptor"/> 34 <interceptor-ref name="mySecurityInterceptor"/> 35 --> 36 <result>/upload_ok.jsp</result> 37 </action> 38 </package> 39 </struts>