目录
1.什么是cookie
cookie由Netscape公司发明,是最常用的跟踪用户会话的方式。它是由服务器端生成并发送给客户端浏览器的,浏览器会将其保存为某个目录下的文本文件。
cookie对象常用的几个方法
方法名称 | 说明 |
void setMaxAge(int expiry) | 设置cookie的有效期,以秒为单位 |
void setValue(String value) | 在cookie创建后,为cookie赋予新的值 |
String getName() | 获取cookie的名称 |
String getValue() | 获取cookie的值 |
int getMaxAge() | 获取cookie的有效时间,以秒为单位 |
2.在jsp中如何使用创建cookie
(1).创建cookie对象
Cookie Cookie = new Cookie("键","值");
(2).cookie的存值
Cookie cookie = new Cookie("键","值");
response.addCookie(cookie);//使用response对象的addCookie()方法写入cookie
response.sendRedirece("a.jsp");//重定向
cookie.setMathAge(10*60);//cookie的有效访问时间
(3).cookie的取值
request.getCookies();
//写入cookie对象后,读取时需要调用request对象的getCookie()方法,该方法返回的是对象数组
//因此通过遍历的方式进行访问
3.cookie有效期
(1).cookie能够在客户端创建一个文件,用于记录用户有关的数据。但是一个cookie在客户端存在的时间并不是无限期的,也有生命周期。我们可以指定cookie的有效期,在有效期内cookie始终存在并能够读取,当到达cookie有效期后,cookie会被从客户端清除。
(2).设置cookie有效期的方法是调用cookie对象的setMaxAge(int expiryt)方法,其中参数expiry代表cookie的有效时间,以秒为单位。
Cookie ac = new Cookie("info","ok");
ac.setMaxAge(60);//设置cookie失效前时间为60秒
(3).使用setMaxAge(int expiry)时,有一下几种情况
- 通常情况下expiry参数应为大于0的整数,表示cookie的有效存活时间。
- 如果设置expiry参数等于0,表示从客户端删除该cookie。
- 设置expiry参数为负数或者不设置,表示cookie会在当前窗口关闭后失效。
4.cookie与session作用域的对比
- session作用域是在服务器保存用户信息,cookie实在客户端保存用户信息。
- session作用域中保存的值是Object类型,cookie保存的值是String类型。
- session作用域随会话的结束而将其存储的数据销毁,cookie可以长期保存在客户端。
- cookie通常用于保存不重要的用户信息,重要的用户信息使用session作用域保存。(例如:登录用户的用户名和密码等敏感信息不能使用cookie存储;淘宝购物时的“最近浏览过的商品”,则可以使用cookie存储在客户端。)