一,什么是cookie
cookie是一种跟踪用户会话的方式,它是由服务器端生成并发送给客户端浏览器的,浏览器将会保存为某个目录下的文件文件。
二,创建cookie对象
Cookie cookie = new Cookie("键","值");
Cookie类是在javax.servlet.http包下,调用的构造方法有Cookie(String name,String value)
name:用于代表cookie的名称
value:用于表示该名称所对应的值
三,cookie对象的常用方法
方法名称 | 说明 |
void setMaxAge(int expiry) | 设置cookie的有效期,以秒为单位 |
void setValue(String value) | 在cookie创建后,为cookie赋予新的值 |
String getName() | 获取cookie的名称 |
String getValue() | 获取cookie的值 |
int getMaxAge() | 获取cookie的有效时间,以秒为单位 |
四,cookie的有效期是浏览器的开始到关闭结束
1.设置cookie有效期的方法是调用cookie对象的setMaxAge(int expiry)方法,其中参数expiry 代表cookie的有效时间,以秒为单位。
假设cookie的有效期为60s,代码如下:
<%
//创建cookie对象
Cookie nc = new Cookie("info","ok");
nc.setMaxAge(60); //设置cookie失效前时间为60秒
%>
当cookie的有效期超过时,无法读取cookie。
使用setMaxAge(int expiry)时,有以下几种情况,如下
1.通常情况下 expiry 参数应为大于0的整数,表示cookie的有效期存活时间
2.如果设置expity参数等于0,表示从客户端删除该cookie
3.设置 expiry 参数为负数或者不设置,表示cookie会在当前窗口关闭后失效
cookie的取值:request.getCookies();
小总结
1.cookie是由服务器端生成、发送给客户端浏览器的,浏览器将会其保存在某个目录下的文本文件中。
2.通过cookie可以实现浏览器与服务器之间的数据传递。
session作用域和cookie均能实现信息的保存,但是两者的区别如下:
session 作用域是在服务器端保存用户信息,cookie是在客户端保存用户信息。
session 作用域中保存的是Object 类型,cookie保存的是String 类型。
session 作用域对象随会话结束而关闭,cookie可以长期保存到客户端。
cookie 通常用于保存不重要的用户信息,重要的信息使用 session 作用域保存。