系统登录后设置Cookie记住登陆信息

public static final String USER_COOKIE = "user"; //存储用户信息的Cookie名字
    
    /**
     * 添加Cookie
     * @param user 用户对象
     * @return 设置好的Cookie
     */
    @SuppressWarnings({ "deprecation", "unused" })
    public  static Cookie addCookie(User user) {
        String value = String.valueOf(user.getUserId()) + ","
                + URLEncoder.encode(user.getUsername()) + ","
                + user.getUserPsw() + "," + user.getRole() + ","
                + user.getUserLogin();
        
        Cookie cookie = new Cookie(USER_COOKIE, value); // 设置Cookie的name与value属性
        cookie.setMaxAge(60 * 60 * 24 * 14); // 14天的有效期
        return cookie;
    }
    
    /**
     * 获取的cookie是否存在
     * @param request HttpServletRequest实例
     * @return 标识cookie存在与否的标识
     */
    public static boolean getCookie(HttpServletRequest request, UserService userService){
        Cookie [] cookies = request.getCookies();
        
        if(cookies !=null) {
            
            for(Cookie cookie :cookies){
                
                if(USER_COOKIE.equals(cookie.getName())){
                    String value = cookie.getValue();
                    
                    if(StringUtils.isBlank(value)) {
                        String [] vals = value.split(",");
                        
                        String userId = vals[0];   //用户Id
                        String username = vals[1]; //用户名
                        String password = vals[2]; //密码
                        String role = vals[3];     //密码
                        String userLogin = vals[4];
                        //验证该用户是否存在
                        User user = (User)userService.isLogin(userLogin, password);
                        if(user!=null) {
                            //将属性添加到Session中
                            HttpSession session = request.getSession();

                            session.setAttribute("username",user.getUsername());
                            session.setAttribute("password",user.getUserPsw());
                            session.setAttribute("userID",user.getUserId());
                            session.setAttribute("role",user.getRole());
                            
                            return true;
                        }//end if
                        
                    }//end if
                    
                }//end if
            }//end for
        }//end if
        return false;
    }
    
    /**
     * 删除Cookie
     * @param request
     * @return
     */
    public static Cookie deleteCookie(HttpServletRequest request){
        Cookie [] cookies = request.getCookies();
        if(cookies !=null) {
            for(Cookie cookie : cookies) {
                if(USER_COOKIE.equals(cookie.getName())){
                    cookie.setValue("");//置空
                    cookie.setMaxAge(0);//清空
                    return cookie;
                }
            }    
        }
        return null;//不存在cookie
    }


你可能感兴趣的:(Java)