自定义拦截器
模拟Struts2自带的拦截器,看源代码即可。
简单示例
1.实现Interceptor接口
package com.struts2.Interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class MyInterceptor implements Interceptor{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void init() {
// TODO Auto-generated method stub
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
long start = System.currentTimeMillis();
String r = invocation.invoke();
long end = System.currentTimeMillis();
System.out.println("the TestAction time is"+(end-start));
return r;
}
}
2.struts.xml配置
<package name="test" extends="struts-default" namespace="/">
<interceptors>
<interceptor name="my" class="com.struts2.Interceptor.MyInterceptor"></interceptor>
</interceptors>
<action name="test" class="com.struts2.action.TestAction">
<result>/test.jsp</result>
<interceptor-ref name="my"></interceptor-ref>
<!--不写默认值,my拦截器则会将struts2自带的拦截器覆盖-->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>