1.第一种方式
拦截器类书写
public class UserInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("我在action之前执行!");
System.out.println("拦截时间:"+new Date());
//执行的是Action中的方法
String result = invocation.invoke();
System.out.println("我在action之后执行!");
return result;
}
}
struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="jiangwenwen" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="userInterceptor" class="cn.jiangwenwen.interceptor.UserInterceptor"></interceptor>
</interceptors>
<action name="login" class="cn.jiangwenwen.action.UserAction" method="login">
<result>/test.jsp</result>
<interceptor-ref name="userInterceptor"></interceptor-ref>
<!-- 当使用自定义拦截器,默认拦截器将会失效,所以需要添加默认拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
2.第二种方式
拦截器类书写
public class UserInterceptor extends MethodFilterInterceptor{
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
System.out.println("我在action之前执行!");
System.out.println("拦截时间:"+new Date());
//执行的是Action中的方法
String result = invocation.invoke();
System.out.println("我在action之后执行!");
return result;
}
}
struts.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="jiangwenwen" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="userInterceptor" class="cn.jiangwenwen.interceptor.UserInterceptor"></interceptor>
</interceptors>
<action name="login" class="cn.jiangwenwen.action.UserAction" method="login">
<result>/test.jsp</result>
<interceptor-ref name="userInterceptor">
<!-- 代表是否拦截某一个方法 -->
<param name="excludeMethods">login</param>
</interceptor-ref>
<!-- 当使用自定义拦截器,默认拦截器将会失效,所以需要添加默认拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>