日期:2014-05-20  浏览次数:20650 次

刚注册成功的用户怎么跳过登录这一过程就直接进入到登陆之后的页面
我写了一个注册功能,当用户注册成功时,怎么跳过登陆这个过程(如:填写用户名、密码、验证码)就直接判断用户权限进入到指定页面。
我的jsp页面代码如下;
 <div style= "text-align:center">
   恭喜,注册成功! <div id="show"></div>秒钟之后,自动登陆跳转<br>  
    <%    response.setHeader("refresh","3;url=login.jsp");   %>  
  </div>

[color=#00CCFF]后台判断登录信息的代码:
if(SecurityContextHolder.getContext().getAuthentication().getDetails().getClass() == MyWebAuthenticationDetails.class){
MyWebAuthenticationDetails details = (MyWebAuthenticationDetails)SecurityContextHolder.getContext().getAuthentication().getDetails();
String identity = details.getIdentity();

if(identity.equals(Constant.IDENTITY_USER)){
request.getSession().setAttribute("loginName", details.getLoginName());
loginService.updateLastloginANDLogintimesById(details);
UserInfo userInfo = userInfoService.queryUserById(details.getRoleId());
request.setAttribute("realName", userInfo.getRealName());
return "user_index";
} else if(identity.equals(Constant.IDENTITY_ADMIN)) {
//response.sendRedirect(request.getContextPath() + "/merchant/gotoManager.do");
Admin admin = loginService.getAdminById(details.getRoleId());
request.getSession().setAttribute("loginName", details.getLoginName());
request.getSession().setAttribute("realName", admin.getRealName());
loginService.updateLastloginANDLogintimesById(details);
return "index_admin";
}
}[/color]  


我希望在3秒之后跳转到登陆之后的页面,这个jsp页面中的url要怎么写,怎么找到正常登录时的判断方法(就是在后台判断用户名、密码、验证码是否正确),还有这个用户的登陆信息怎么传递过去,放在一个隐藏域吗?这个判断方法是从session中获取用户信息的,我在jsp页面中要怎么设置刚注册成功的用户信息,跳转到这个方法进行登录判断。
------最佳解决方案--------------------
这个很好办,你只要在session中设置一个标志位(isUserLogin)就可以了,

isUserLogin - 标志当前用户是否登录。

无论是新用户,还是老用户,只要他们登录了,就给session中,设置一个标志他们登录的状态。


if(isUserLogin){
   // 成功登录
}else{
   // 登录判断代码
}

------其他解决方案--------------------
1.如果是刚创建的就直接跳过用户效验,直接把用户信息写入到session中
2.如果创建成功则用刚才创建用户时的信息进行一次登录