cookie怎么生成?保存在什么地方,有什么用?浏览器什么时候会发送cookie,发送哪些cookie给服务器?
- - cookie最终是保存在浏览器客户端上,可以保存在运行内存中(浏览器关闭则消失),也可以保存在硬盘文件上(永久保存)
cookie有啥用?
- cookie和session机制其实都是为了保存会话的状态
- cookie是将会话的状态保存在浏览器客户端上(cookie数据存储在浏览器客户端上);session是将会话的状态保存在服务器上(session对象是存储在服务器上)
- 为什么有cookie和session机制?
- 因为HTTP是无状态无连接协议
cookie的经典案例
① 京东商城在没有登录的情况下,向购物车加几件商品,然后关闭商城,再次打开浏览器,访问京东商城的时候,购物车中的商品还在,这是怎么做的?(现在都需要登录)
- 其实就是将每一个商品编号以cookie的形式保存到我们的硬盘文件中,这样即使关闭浏览器,硬盘上的cookie还在,下一次再打开京东商城的时候,查看购物车的时候,会自动读取本地硬盘中存储的cookie,拿到商品编号,动态展示购物车中的商品
- 注意cookie如果清除掉购物车的物品就消失了
② 126邮箱中有一个功能:10天内免登录
- 这个功能也是cookie实现的
- 怎么实现的?登录时候将你的账号和密码保存到cookie中,然后将cookie保存到硬盘文件中,10天内再次访问时候,浏览器自动提交126的关联的cookie给服务器,服务器接收到cookie后,获取用户名和密码,验证通过后,自动登录。
- 怎么让cookie失效?
Ⅰ 改密码 Ⅱ 在浏览器上清除 Ⅲ十天后自动失效
cookie机制和session机制其实都不属于java中的机制,实际上cookie机制和session机制都是HTTP协议的一部分,php开发中也有cookie和session机制,只要你要web开发,不管是什么编程语言,cookie和session机制都是需要的
HTTP协议中规定任何一个cookie都是由name和value组成的,name和value都是字符串类型
在java的servlet中对cookie提供哪些支持?
1. 提供一个cookie类,专门表示cookie数据。jarkata.servlet.http.Cookie;(只有有参构造)
6. java程序怎么把cookie数据发送给浏览器的呢?
response.addCookie(cookie);
//设置cookie在一小时后失效
cookie.setMaxAge(60 * 60);
没有设置有效时间,默认保存在浏览器的运行内存中,浏览器关闭则cookie消失,- 只要设置cookie的有效时间>0,这个cookie一定会存储到硬盘文件中;- 有效时间等于0,表示该cookie被删除,主要应用在:使用这种方式删除浏览器上的同名cookie; - 有效时间<0表示该cookie不会被存储(表示不会被存储到硬盘文件上,会放到浏览器运行内存当中,和不调用sexMaxAge是同一个效果)。
//也可以手动设置应用的根路径
cookie.setPath("/servlet13");
只要url中根路径是"/servlet13",cookie都能提交给服务器
Cookie[] cookies=request.getCookies();
//如果不是null,一定有cookie
if(cookies!=null)
{
for(Cookie cookie : cookies)
{
//遍历cookie,获取cookie的name和value
String name=cookie.getName();
String value=cookie.getValue();
System.out.println(name+"="+value);
}
}