使用Struts2的自定义拦截器可以用来验证用户的请求,例如验证用户是否已登陆。Struts2的核心就是拦截器。
1、首先写一个java类实现com.opensymphony.xwork2.interceptor.Interceptor接口。
package org.zqy;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
@SuppressWarnings("serial")
public class InterceptorDemo implements Interceptor{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void init() {
System.out.println("调用拦截器");
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("处理拦截业务!");
String result = invocation.invoke();
System.out.println("即将退出拦截"+result);
return result;
}
}
2、在struts.xml配置相关信息。
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="interceptordemo" class="org.zqy.InterceptorDemo" />
<interceptor-stack name="demo1">
<interceptor-ref name="interceptordemo" /><!--用户自定义的拦截器-->
<interceptor-ref name="defaultStack"/><!--struts2默认的拦截器 -->
</interceptor-stack>
</interceptors>
<action name="*" class="org.zqy.HelloStruts2">
<result name="success">/index.jsp</result>
<interceptor-ref name="demo1"/><!--调用自己定义的拦截器-->
</action>
</package>