其他分享
首页 > 其他分享> > ssm中利用cookie免密登录、获取上次登录时间

ssm中利用cookie免密登录、获取上次登录时间

作者:互联网

获取登录cookie,cookie未加密。

 public String login(Model model, User user, HttpServletRequest request, HttpServletResponse response){
        //先需要的账号密码赋值为空
        String loginName ="";
        String password ="";
        String lastLoginTime="";
        User userLogin;
        //获取所有cookie值
        Cookie[] cookies = request.getCookies();
        //如果有cookie那么就取出里面账号密码的值、赋值给变量
        if(cookies != null && cookies.length != 0 ){
            for (Cookie cookie : cookies){
                if(cookie.getName().equals("loginName")){
                    loginName = cookie.getValue();
                }
                if(cookie.getName().equals("password")){
                    password = cookie.getValue();
                }
                if(cookie.getName().equals("lastLoginTime")){
                    lastLoginTime = cookie.getValue();
                }
            }
        }
        //获取上次登录时间的cookie、有的读取不到的加上setpath(“/”)
        if(lastLoginTime.equals("")){
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            lastLoginTime= URLEncoder.encode(df.format(new Date()));
            Cookie cookie = new Cookie("lastLoginTime", lastLoginTime);
            cookie.setMaxAge(1000*60);
            //cookie.setPath("/");
            response.addCookie(cookie);
            model.addAttribute("lastLoginTime","欢迎您首次登录");
        }else{
            lastLoginTime= URLDecoder.decode(lastLoginTime);
            model.addAttribute("lastLoginTime","您上次登陆的时间是:"+ lastLoginTime);
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            lastLoginTime= URLEncoder.encode(df.format(new Date()));
            Cookie cookie = new Cookie("lastLoginTime", lastLoginTime);
            cookie.setMaxAge(1000*60);
            cookie.setPath("/");
            response.addCookie(cookie);
        }
        //判断cookie有没有值,如果有那么就用cookie的值进行赋值给user,如果没有就获取页面上的值判断能不能登录如果能
        if(!"".equals(loginName) && !"".equals(password) ){
            user.setLoginName(loginName);
            user.setPassword(password);
        }
        //通过用户名寻找用户比对,用户名不允许重复
        userLogin= userService.selectUserByLoginName(user.getLoginName());
        if(userLogin==null){
            model.addAttribute("msg","登录失败,没有该账号!");
            return "system/register";
        }else if(userLogin.getStatus().equals("0")){
            model.addAttribute("msg","用户状态为失效状态,禁止登录!请联系管理员");
            return "system/register";
        }else if(userLogin.getPassword().equals(userLogin.getPassword())){
            Cookie cookie1 = new Cookie("loginName",userLogin.getLoginName());
            cookie1.setMaxAge(1000*60);
            //cookie1.setPath("/");
            response.addCookie(cookie1);
            Cookie cookie2 = new Cookie("password",user.getPassword());
            cookie1.setMaxAge(1000*60);
            //cookie1.setPath("/");
            response.addCookie(cookie2);
            /*将用户信息放入session*/
            request.getSession().setAttribute("userInfo",userLogin);
            //获取sessionid
            String sessionId=request.getSession().getId();
            model.addAttribute("sessionId",sessionId);
            return "forward:/user/main";
        }
        return "system/register";
    }

页面端:
//页面获得cookie值如果包含登陆值直接后台判断
$(function () {
var cookies = document.cookie;
if(cookies.concat(“loginName”) && cookies.concat(“password”)){
location.href ="<%=path%>/user/login";
}
});

标签:免密,登录,userLogin,equals,new,ssm,cookie,Cookie,lastLoginTime
来源: https://blog.csdn.net/zone_0_1/article/details/90690477