赞
踩
目录
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<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')*/
可以点个免费的赞吗!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。