1、Cookie简介
Cookie是一种会话技术,它用于将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好的进行数据交互。
2、Cookie特点
cookie是以文本形式保存(.txt)
cookie存储信息不安全(不能存放重要的信息)
cookie中有域(domain)和路径的概念,浏览器是一个比较安全的环境,所以不同的域之间不能直接访问(js的同源策略限制)
3、Cookie操作(Java)
//获取cookie(request为HttpServletRequest)
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies){
System.out.println(cookie.getName()+":"+cookie.getValue());
}
//操作cookie(response为HttpServletResponse)
Cookie c = new Cookie("username","peter");// 新建一个Cookie对象
c.setPath("/"); // 路径(一般为/,表示同一服务器内所有应用都可访问到该Cookie,视具体情况)
c.setDomain(".zxm.com"); // 设置域名(**设置为.zxm.com域名的话,则xxx.zxm.com的域名都可共享此cookie,不然就跨域无法共享**)
c.setMaxAge(24*60*60); // 设置过期时间1天,以秒为单位
//c.setMaxAge(0); // 设置生命周期为0,表示将要删除
//c.setMaxAge(Integer.MAX_VALUE); //设置永久
response.addCookie(c); // 保存cookie到客户端
4、Cookie操作(JavaScript)
简单形式:
//没有设置expires时间的话其实就是默认关闭浏览器失效
document.cookie ='username=peter;domain=.zxm.com;path=/'
//设置max-age为0也能移除cookie,也可以用以下整理的方法
以下是整理的方法:
//添加cookie
function setCookie(name,value,time){
var date= new Date();
date.setDate(date.getDate()+time);
document.cookie = name+"="+value+";expires="+date;
}
//获得cookie
function getCookie(name){
var arr = document.cookie.split(";");
for(var i=0; i<arr.length; i++){
var arr2 = arr[i].split("=");
if(arr2[0] == name){
return arr2[1];
}
}
return null;
}
//删除cookie
function removeCookie(name){
setCookie(name,"",0)
}
有更好或更齐全的也可以在评论区推荐下哟!