public class MyInterceptor implements Interceptor
{
public void destroy()
{
// TODO Auto-generated method stub
System.out.println("拦截器销毁!");
}
public void init()
{
// TODO Auto-generated method stub
System.out.println("拦截器初始化");
}
public String intercept(ActionInvocation invocation) throws Exception
{
// TODO Auto-generated method stub
System.out.println("拦截器开始验证!");
if(LoginAction.class==invocation.getAction().getClass())
{
return invocation.invoke();
}
User user=(User)invocation.getInvocationContext().getSession().get("user");
if(user==null)
return "fail";
System.out.println("用户已经登录");
return invocation.invoke();
}
}
然后在struts.xml中配置拦截器
[html]
<interceptors>
<interceptor name="login" class="com.interceptor.MyInterceptor"></interceptor>
<interceptor-stack name="mystack">
<interceptor-ref name="login"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mystack"></default-interceptor-ref>
这样如果用户请求登录页面,可以顺利通过,如果用户请求其他页面,就需要检查用户是否已经登录,如果没有登录,则跳回登录页面