Cookie的使用和细节

Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除

1.发送Cookie
        Cookie cookie = new Cookie("key","value");//在Cookie中不能保存中文字符串,既不能保存中文数据。
        1)设置cookie的有效路径。默认情况:有效路径在当前web应用下。/代表当前web应用路径
        cookie.setPath("/project/cn/itcast/servlet/");
        2)设置cookie的有效时间,传入的值是int类型的,单位是秒。
          正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。
           负整数:表示cookie数据保存浏览器的内存中。浏览器关闭cookie就丢失了!!
           零:表示删除同名的cookie数据        

        //cookie.setMaxAge(20); //20秒,从最后不调用cookie开始计算
        cookie.setMaxAge(-1); //cookie保存在浏览器内存(会话cookie)
        //cookie.setMaxAge(0);//删除同名的cookie

         3)把cookie数据发送到浏览器
         response.addCookie(cookie);
         也可以使用手动方式发送Cookie,(是通过设置响应头来发送)但不推荐:
         //response.setHeader("set-cookie",cookie.getName()+"="+cookie.getValue()+",email=eric@qq.com");

2.接收Cookie数据:
方式1:String name = request.getHeader(“cookie”)
方式2:Cookie[] cookies = request.getCookies();
//注意:判断null,否则空指针
if(cookies!=null){
//遍历
for(Cookie c:cookies){
String name = c.getName();
String value = c.getValue();
System.out.println(name+”=”+value);
}
}else{
System.out.println(“没有接收cookie数据”);
}

    }

3.细节:
1)void setPath(java.lang.String uri) :设置cookie的有效访问路径。有效路径指的是cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时就会带着cookie信息,否则不带cookie信息。
2)void setMaxAge(int expiry) : 设置cookie的有效时间。
正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。
负整数:表示cookie数据保存浏览器的内存中。浏览器关闭cookie就丢失了!!
零:表示删除同名的cookie数据
3)Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
4)setDomain(String str);设置指定的有效域,不设置默认为/,既代表该应用下所有域,如果设置为指定的域,则只在访问指定域时带Cookie数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值