登录记住功能,信息保存到Cookie

保存到cookie时,中文和部分符号会乱码。

value要用URLEncoder.encode(value, "UTF-8")编码;取值时用URLDecoder.decode(cookie.getValue(), "UTF-8")解码

 Cookie工具类

package orglizyuu.util;

import java.net.URLEncoder;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Cookie工具类
 * 
 */
public class CookieUtil {

    private CookieUtil() {
    }

    /**
     * 添加cookie
     * 
     * @param response
     * @param name
     * @param value
     * @param maxAge
     */
    public static void addCookie(HttpServletRequest request ,HttpServletResponse response, String name, String value, int maxAge) {
       try {
    	   Cookie cookie = getCookieByName(request, name);
    	   if(cookie == null) {
    		   cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
    	   }
           cookie.setPath("/");//设置作用域
           if (maxAge > 0) {
               cookie.setMaxAge(maxAge);//设置cookie存活时间,eg:记住3天--60*60*24*3
           }
           response.addCookie(cookie);
	} catch (Exception e) {
		e.printStackTrace();
	}
    }

    /**
     * 删除cookie
     * 
     * @param response
     * @param name
     */
    public static void removeCookie(HttpServletResponse response, String name) {
        Cookie uid = new Cookie(name, null);
        uid.setPath("/");
        uid.setMaxAge(0);
        response.addCookie(uid);
    }

    /**
     * 获取cookie值
     * 
     * @param request
     * @return
     */
    public static Cookie getCookieByName(HttpServletRequest request,String cookieName) {
        Cookie cookies[] = request.getCookies();
        if(cookies==null){
        	return null;
        }
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals(cookieName)) {
                return cookie;
            }
        }
        return null;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43632364/article/details/84302623