目录
1.概念
2.Cookie的基本使用
2.1创建Cookie对象,并设置数据
2.2发送Cookie到客户端
2.3获取Cookie
2.4Cookie 存活时间
3.注意事项
4.JavaScript操作Cookie
1.概念
客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。
2.Cookie的基本使用
Cookie cookie = new Cookie("key","value");
response.addCookie(cookie);
获取客户端携带的所有Cookie
Cookie[] cookies = request.getCookies();
遍历数组,获取每一个Cookie对象:for,使用Cookie对象方法获取数据
cookie.getName();
cookie.getValue();
//表单输入框使用value值给表单元素添加默认值,value可以使用
${cookie.key.value}
//注:在JSP使用,添加词头“<%@ page isELIgnored="false" %>”,为EL表达式,key为cookie名称,
//设置存活时间,1周 7天
//setMaxAge(int seconds)
cookie.setMaxAge(60*60*24*7);
参数值为:
1.正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储,到时间自动删除。
2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁。
3.零:删除对应Cookie。
3.注意事项
Cookie不能存储中文,我们可以使用之前学过的一个知识点叫URL编码
,所以如果需要存储中文,就需要进行转码,具体的实现思路为:
1.在AServlet中对中文进行URL编码,采用URLEncoder.encode(),将编码后的值存入Cookie中
2.在BServlet中获取Cookie中的值,获取的值为URL编码后的值
3.将获取的值在进行URL解码,采用URLDecoder.decode(),就可以获取到对应的中文值
//在AServlet中对中文进行URL编码
//发送Cookie
String value = "张三";
//对中文进行URL编码
value = URLEncoder.encode(value, "UTF-8");
System.out.println("存储数据:"+value);
//将编码后的值存入Cookie中
Cookie cookie = new Cookie("username",value);
//获取Cookie
//1. 获取Cookie数组
Cookie[] cookies = request.getCookies();
//2. 遍历数组
for (Cookie cookie : cookies) {
//3. 获取数据
String name = cookie.getName();
if("username".equals(name)){
String value = cookie.getValue();//获取的是URL编码后的值 %E5%BC%A0%E4%B8%89
//URL解码
value = URLDecoder.decode(value,"UTF-8");
System.out.println(name+":"+value);//value解码后为 张三
break;
}
}
4.JavaScript操作Cookie
JS封装cookie操作函数实例(设置、读取、删除),主要介绍了JS封装cookie操作函数,以实例形式分析了JavaScript实现针对cookie的设置、获取及删除相关技巧。
/*设置cookie*/
function setCookie(name, value, iDay)
{
var oDate=new Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+'='+value+';expires='+oDate;
};
/*使用方法:setCookie('user', 'simon', 11);*/
/*获取cookie*/
function getCookie(name){
var arr=document.cookie.split('; ');//多个cookie值是以; 分隔的,用split把cookie分割开并赋值给数组
for(var i=0;i
可以点个免费的赞吗!!!