求大神指导写一个struts2拦截器判断登陆,登录后返回登录前操作
2个回答
2012-06-06 · 知道合伙人互联网行家
关注
展开全部
package com.epower.fw.interceptor;
import java.util.Map;
import com.epower.util.Constants;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class LoginCheck extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private String escapeActions;
public String intercept(ActionInvocation invocation) throws Exception {
//取得与请求相关的ActionContext
ActionContext ctx = invocation.getInvocationContext();
//取得session
Map<String,Object> session = ctx.getSession();
String[] temp = invocation.getAction().toString().split("\\.");
String action = temp[temp.length-1].split("@")[0];
boolean escape=false;
if(escapeActions!=null){
for(String name:escapeActions.split(",")){
if(name.equals(action)){
escape=true;
break;
}
}
}
String userCode = (String)session.get(Constants.SYS_USERCODE);
// System.out.println("INTERCEPTOR LOGINCHECK:"+(userCode!=null)+" USERCODE="+userCode);
//没有登录返回login页面
if(escape || userCode != null ){
return invocation.invoke();
}else{
return "login";
}
}
public String getEscapeActions() {
return escapeActions;
}
public void setEscapeActions(String escapeActions) {
this.escapeActions = escapeActions;
}
}
import java.util.Map;
import com.epower.util.Constants;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class LoginCheck extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private String escapeActions;
public String intercept(ActionInvocation invocation) throws Exception {
//取得与请求相关的ActionContext
ActionContext ctx = invocation.getInvocationContext();
//取得session
Map<String,Object> session = ctx.getSession();
String[] temp = invocation.getAction().toString().split("\\.");
String action = temp[temp.length-1].split("@")[0];
boolean escape=false;
if(escapeActions!=null){
for(String name:escapeActions.split(",")){
if(name.equals(action)){
escape=true;
break;
}
}
}
String userCode = (String)session.get(Constants.SYS_USERCODE);
// System.out.println("INTERCEPTOR LOGINCHECK:"+(userCode!=null)+" USERCODE="+userCode);
//没有登录返回login页面
if(escape || userCode != null ){
return invocation.invoke();
}else{
return "login";
}
}
public String getEscapeActions() {
return escapeActions;
}
public void setEscapeActions(String escapeActions) {
this.escapeActions = escapeActions;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询