前/后端Cookie操作

借助Cookie可以在返回之前的页面时还原某些操作,比如之前选中了树的一个节点,在返回该页面时希望能自动选中那个节点,那么我们可以在Cookie中记录这个节点的标识

前端操作Cookie的方法:来自百度搜索

// 如果要设置过期时间以秒为单位
function setCookie(c_name, value, expireseconds) {
    var exdate=new Date();
    exdate.setTime(exdate.getTime()+expireseconds * 1000);
    document.cookie=c_name+ "=" +escape(value)+
    ((expireseconds==null) ? "" : ";expires="+exdate.toGMTString())
}

// 函数中的参数为 要获取的cookie键的名称。
function getCookie(c_name) {
    if (document.cookie.length>0){
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1){
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1){ 
                c_end=document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start,c_end));
        }
     }
    return "";
}

// 删除指定的Cookie
function delCookie(name) {    
    var exp = new Date();    
    exp.setTime(exp.getTime() - 1);    
    var cval = getCookie(name);    
    if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();   

} 

快速使用:

setCookie('empNum', 'emp:001', 7200);  // 设置cookie有效时间2小时

var empNum = getCookie('empNum');

delCookie('empNum');


后台操作Cookie的方法:

request对象为HttpServletRequest

    // 保存Cookie
    Cookie ck = new Cookie("cookieName", "cookieValue");
    // 设置cookie的有效域(IP),可以在www.test.com  image.test.com下都能有效
    // 这是设置了一个二级域名
    ck.setDomain("test.com");
    ck.setPath("/");//代表设置在根目录
    // 不允许脚本访问cookie信息
    ck.setHttpOnly(true);
    // cookie有效期(单位秒),如果是-1 代表永久,如果不设置maxAge的话,cookie就不会写入硬盘,而是写在内存
    ck.setMaxAge(60 * 60 * 24 * 365);
    response.addCookie(ck);

    // 读取Cookie
    String cookieValue = null;
    // Cookie以数组的形式保存在Request中
    Cookie[] cks = request.getCookies();
    if (cks != null) {
        for(Cookie ck : cks){
            if (StringUtils.equals(ck.getName(), "cookieName")) {
                cookieValue = ck.getValue();
                break;
            }
        }
    }

    // 删除Cookie
    Cookie[] cks = request.getCookies();
    if (cks != null) {
        for (Cookie ck : cks) {
            if (StringUtils.equals(ck.getName(), "cookieName")) {
                ck.setDomain("www.test.com");
                ck.setPath("/"); ck.setMaxAge(0); // maxAge设置成0,代表删除cookie
                response.addCookie(ck);
                return;
            }
        }
    




版权声明:本文为qq_36743920原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。