标签:
struts.xml配置: <!-- 自定义用户登录拦截器 --> <!-- 对于其他需要登录拦截的struts配置文件,如果继承了“default”,则不需要进行配置,直接可以通过继承来实现该拦截器,若没有继承“default“,都需要配置登录拦截器,配置方式和此处一样,若某个action不需要拦截,则在该action下添加默认拦截器即可(<intercentor-ref name="defaultStack" />)--> <!-- 说明: loginInterceptor:可随意取,和<intercentor-ref name="loginInterceptor" />中一样就行 mydefault:随意取,和重写默认拦截器是的name一样即可 defaultStack:默认拦截器,必须这样写 --> <intercentors> <intercentor class="拦截器java文件路径" name="loginInterceptor"/> <intercentor-stack name="mydefault" > <intercentor-ref name="defaultStack" /> <intercentor-ref name="loginInterceptor" /> </intercentor-stack> </intercentors> <!-- 重写默认拦截器 --> <default-interceptor-ref name="mydefault" /> <!-- 定义全局 变量,跳转到登录页面 opsLogin.jsp为登录页面 --> <global-results> <resutl name="login" type="redirect">/opsLogin.jsp</result> </global-results>
//拦截器java代码
import java.util.Map;
import com.opensymphony.xwork2.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 用户登录拦截器
*/
public class LoginInterceptor extends AbstractInterceptor{
public string intercept(ActionInvocation invaction) throws Exception{
//获取session中的用户ID
ActionContext ctx = invocation.getIncovationContext();
Map<String,Object> session = ctx.getSession();
Object object = session.get("id");
//若不为空,则struts将会继续执行
if(object != null){
return invocation.invoke();
}else{
//若为空,直接跳转到登录页面
return Action.LOGIN;
}
}
}//用户登录action代码
public String login(){
//根据用户名和密码查询用户信息
user = opsUserManager.findByNameAndPwd(name,password);
//若果查询到的用户信息不为空,则将用户ID存进Session中,并且跳转到主页面
if(user != null){
HttpServletRequest request = ServletActionContext.getRequest();
Map<String,Object> map = ActionContext.getContext().getSession();
map.put("id",user.getId());
return SUCCESS;
}else{
//如果查询不到,则跳转到登录页面
return ERROR;
}
}
SSH2登陆拦截配置(若登陆,则跳转到用户需要访问的网页,若没登录,直接跳转到登录页面)
标签:
原文地址:http://blog.csdn.net/u013126217/article/details/51355316