之前一直不是很理解cookie到底是如何工作的,今天我们来简单的看看cookie.
一 cookie原理:
一 cookie原理:
是由set-cookie发送的键--值,让浏览器记住信息。浏览器在之后的请求中会携带cookie 键--值给服务器、
二 cookie操作:
1.存cookie:创建并发送cookie给浏览器
Cookie cookie = new Cookie("name","tom");
response.addCookie(cookie);
2.取cookie : 浏览器将键值对发送给服务器服务取得
Cookie[] cookies=request.getCookies();<span style="font-family:Consolas;color:windowtext;font-size: 10pt;"> </span>
3. 遍历并判断cookie是否是要找的
for(Cookie c:cookies){
//鎵惧埌鎴戜滑瑕佺殑cookie
if(c.getName().equals("name")){
tageCookie=c;
}
三 操作Cookie 的保存时间:
//控制cookie的有效时间
//1.浏览器只能临时记住,浏览器一旦关闭,cookie就会丢失(保存在浏览器内存中)==》默认情况
cookie.setMaxAge(-1);
//2.浏览器记住一段时间,在这段时间内,不管浏览器打开关闭,都会保存,保存在硬盘上
cookie.setMaxAge(60*60);
//3.cookie到达浏览器立即失效(删除)
cookie.setMaxAge(0);
//4.cookie 存在覆盖性,覆盖的时候key必须一致,路径也必须一致
四 什么情况下浏览器才发送cookie:
cookie默认路径使用,发送cookie资源所在路径。
cookie路径:
http://localhost:8080/test/
当cookie路径一致时。浏览器会发送cookie,当cookie路径不一致时,不会发送cookie。
五 使用cookie发送中文:
因为http 不支持中文码表,所以在发送中文的时候需要对中文先进行编码,然后在发送
1.编码:
1.编码:
String name= URLEncoder.encode("汤姆","UTF-8");
Cookie cookie = new Cookie("name",name);
2.解码:
String name =URLDecoder.decode(tageCookie.getValue(), "UTF-8");
六 cookie的域:
cookie的域是当前使用主机所在的域,也可以手动设置。
当地址f分别为:map.test.com mail.test.com music.test.com的时候,如何实现cookie跨域?
1.域名设置为“.test.com”
2.cookie 路径设置为:“/”