您的位置:首页 > 编程语言 > Java开发

struts2拦截器验证登陆状态

2014-04-15 13:46 323 查看
<interceptors>
<!--定义一个名为authority的拦截器-->
<interceptor  class="com.***.rights.RightInterceptor" name="rightInterceptor"/>
<!--定义一个包含权限检查的拦截器栈-->
<interceptor-stack name="mydefault">
<!--配置内建默认拦截器-->
<interceptor-ref name="defaultStack"/>
<!--配置自定义的拦截器-->
<interceptor-ref name="rightInterceptor"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault" />
<!--定义全局Result-->
<global-results>
<result name="login">Login.jsp</result>
<result name="error">/error.jsp </result>
</global-results>


import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.ActionContext;
public class RightInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {
//System.out.println("拦截器开始验证");
try
{
ActionContext actionContext = ActionContext.getContext();
Map<String,Object> session = actionContext.getSession();
String user=session.get("usercode").toString();
//当前用户session无效且访问的action不是登录action时,执行拦截,跳转
if((user==null || user.equals("")) && !invocation.getAction().getClass().getName().equals("登录action"))
{
return Action.LOGIN;
}
}
catch(Exception e)
{
e.printStackTrace();
return Action.LOGIN;
}
//System.out.println("拦截器通过验证");
return invocation.invoke();//执行访问的action
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: