Cookie的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie的使用相关的知识,希望对你有一定的参考价值。
Cookie是常用的会话跟踪技术,通过在浏览器中保存会话的信息确定用户的身份。在web应用程序使用http协议传输数据时,一旦交换结束,客户端和服务端的连接就断开,下一次传输就必须要建立新的连接,这样服务器就无法跟踪会话,而Cookie就提供了一种会话跟踪的机制。
Cookie存放这一小段的文本信息,当客户端请求服务器时,如果服务器需要记录该用户的状态,就可以使用response向客户端浏览器颁发一个Cookie,相当于一个服务器的通行证。客户端浏览器会把Cookie保存起来,当浏览器再次请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态,也可以根据需要修改Cookie的内容。
一. java中的Cookie使用
javax.servlet.http.Cookie
构造方法:
Cookie cookie = new Cookie(name, value);
Getters/Setters:
cookie.setComment(purpose); // String cookie的说明 cookie.setDomain(pattern); // String 可以访问该Cookie的域名,以“.”开头 cookie.setHttpOnly(httpOnly); // boolean cookie.setMaxAge(expiry); // int 单位:秒 默认:-1 0代表删除 cookie.setPath(uri); // String Cookie的使用路径 最后一个字符必须为“/” cookie.setSecure(flag); // boolean cookie.setValue(newValue); // String cookie.setVersion(v); // int
获取Cookie:
Cookie[] cookies = javax.servlet.http.HttpServletRequest.getCookies();
新增Cookie:
void javax.servlet.http.HttpServletResponse.addCookie(Cookie arg0)
二. js操作Cookie
设置Cookie:
document.cookie = "name=" + username + ";password" + password + ";expires=" + exp.toGMTString();
function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires; }
读取Cookie:
var username = document.cookie.split(";")[0].split("=")[1];
var password = document.cookie.split(";")[1].split("=")[1];
function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(‘;‘); for(var i=0; i<ca.length; i++) { var c = ca[i]; while (c.charAt(0)==‘ ‘) c = c.substring(1); if (c.indexOf(name) != -1) return c.substring(name.length, c.length); } return ""; }
三. jquery操作Cookie
使用jquery操作Cookie时,需要导入jquery.cookie.js (下载地址:http://plugins.jquery.com/cookie/)
$.cookie(‘the_cookie‘); // 读取 cookie $.cookie(‘the_cookie‘, ‘the_value‘); // 存储 cookie $.cookie(‘the_cookie‘, ‘the_value‘, { expires: 7 }); // 存储一个带7天期限的 cookie $.cookie(‘the_cookie‘, ‘‘, { expires: -1 }); // 删除 cookie $.cookie("currentMenuID", "menuID", { path: "/"}); // 设置可以访问cookie的路径 $.cookie("currentMenuID", "menuID", { path: "/", expires: date}); //设置多个属性
同一web应用不同路径下可能获取不到保存的cookie,所有当域和路径不同时会产生不同的cookie,所以需要设置path
以上是关于Cookie的使用的主要内容,如果未能解决你的问题,请参考以下文章
Django cookie 横幅:window.wpcc 未定义