Cookie使用方法简介

目录

1.概念

2.Cookie的基本使用 

2.1创建Cookie对象,并设置数据

2.2发送Cookie到客户端

2.3获取Cookie 

2.4Cookie 存活时间

3.注意事项

4.JavaScript操作Cookie 


1.概念

客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。  

2.Cookie的基本使用 

2.1创建Cookie对象,并设置数据

Cookie cookie = new Cookie("key","value");

2.2发送Cookie到客户端

response.addCookie(cookie);

2.3获取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名称,

2.4Cookie 存活时间

//设置存活时间,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<arr.length;i++){//历遍数组
		var ars=arr[i].split('=');//原来割好的数组是:user=simon,再用split('=')分割成:user simon 这样可以通过arr2[0] arr2[1]来分别获取user和simon
		if(ars[0]==name){//如果数组的属性名等于传进来的name
		return ars[1];//就返回属性名对应的值
		}
	}
	return ''; //没找到就返回空
}
/*使用方法:getCookie('user')*/
/*删除cookie*/
function removeCookie(name)
{
  setCookie(name, 1, -1); //-1就是告诉系统已经过期,系统就会立刻去删除cookie
};
/*使用方法:removeCookie('user')*/

 可以点个免费的赞吗!!!    

猜你喜欢

转载自blog.csdn.net/weixin_59798969/article/details/126091930