登录记住功能,信息保存到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;
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值