interceptor拦截器
自定义拦截器
首先需要在xml中配置struts2核心过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后在struts.xml中 注册拦截器
<struts>
<package name="inter" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="MyInterceptor3" class = "intercepter.MyInterceptor3";</interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name = "MyInterceptor3">
<param name="excludeMethods">add</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"></default-interceptor>
<action name="Demo01Action_*" class="intercepter.Demo01Action" method="{1}">
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>
自定义拦截器方式1
public class MyInterceptor1 implements Interceptor{
@Override
public void init() {
}
@Override
public String intercept(ActionInvocation arg0) throws Exception {
return null;
}
@Override
public void destroy() {
}
}
自定义拦截器方式2
public class MyInterceptor2 extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation arg0) throws Exception {
return null;
}
}
自定义拦截器方式3
public class MyInterceptor3 extends MethodFilterInterceptor{
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
System.out.println("前处理");
String result = invocation.invoke();
System.out.println("后处理");
return result;
}
}