JavaWeb中使用Cookie
原始方式:
使用response发送Set-Cookie响应头
使用request获取Cookie请求头
便捷方式:
使用response.addCookie()方法向浏览器保存Cookie
使用request.getCookie()方法获取浏览器归还的Cookie(无Cookie返回NULL)
<%
//新建Cookie
Cookie cookie1 = new Cookie("aaa","AAA");
//添加Cookie
response.addCookie(cookie1);
%>
<%
//获取
Cookie[] cookies = request.getCookies();
//判断
if(cookies != null){
for(Cookie c: cookies){
out.print(c.getName()+"="+c.getValue()+"<br>");
}
}
%>
Cookie详解
Cookie不只有name和value两个属性
Cookie的maxAge:
Cookie的最大生命,即Cookie可保存的最大时长。以秒为单位。例如cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘60秒
maxAge>0:浏览器会把Cookie保存到客户端硬盘上,有效时长为maxAge的值决定
maxAge=0:浏览器会马上删除这个Cookie(作用:删除同名Cookie)
maxAge<0:只在浏览器内存中存在,关闭则消失
Cookie的path:
Cookie的path不是设置这个Cookie在客户端的保存路径
Cookie的path由服务器创建Cookie时设置
当浏览器访问服务器某个路径时,需要归还哪些Cookie给服务器,由Cookie的path(浏览器访问路径包含Cookie的path,则带上Cookie)
Cookie的path默认路径:当前访问路径的父路径。
Cookie的domain
domain用来指定Cookie的域名。当多个二级域中共享Cookie时才有用
例如www.baidu.com、zhidao.baidu.com之间共享Cookie时可以使用domain
设置domain为:cookie.setDomain(“.baidu.com”);
设置path为:cookie.setPath(“/”);