首先介绍cookie的一些方法
方法 | 作用说明 |
void setMaxAge(int expiry) | 设置 cookie 的有效期,以秒为单位 |
void setValue(String value) | 在 cookie 创建后,为 cookie 赋予新的值 |
int getMaxAge() | 获取 cookie 的有效时间,以秒为单位 |
cookie.getName() | 得到此cookie对象的名称 |
cookie.getValue() | 得到对应名称的cookie的值 |
1.创建cookie对象
Cookie newCookie = new Cookie (String name,String value);
Cookie类在javax.servlet.http 包下,当 JSP 翻译成.java文件时, 会自动导入 javax.servolet.http 包下所有的类。在JSP中,通过构造方法Cookie(String naem, String value)
创建新的cookie 对象,其中:
name:用于代表 cookie 的名称。
value:用于表示该名称所对应的值
2.写入cookie
在学习 JSP 内置对象 response 的常用方法时, 有一个 addCookie() 的方法。在创建 cookie 对象后,就使用 response 对象的 addCookie() 方法实现写入 cookie ,其代码如下。
response.addCookie(newCookie);
3.读取 cookie
JSP 通过 response 对象 addCookie() 方法写入 cookie 后,读取是需要调用 JSP 中 request 对象的getCookies()方法,该方法将返回 HTTP 请求中的 cookie 对象数组, 因此必须通过遍历的方式进行访问。
cookie 是通过 name/value 方式进行保存的, 因而在遍历数组时,需要通过调用 cookie 对象的 getName() 方法对每个数组成员的名称进行检查,直至找到我们需要的 cookie ,然后调用 cookie 对象的 getValue() 方法取得与名称对应的值。
4.cookie的有效期
当用户访问页面时,cookie 能够在客户端创建一个文件,用于记录用户的有关数据。 但是一个 cookie 在客户端存在的时间并不是无限期的,也有其声命周期。我们可以指定 cookie 的 有效期,在有效期内 cookie 始终存在并能够被读取,当达到 cookie 有效期后,cookie 会被从客户端清除。
设置 cookie 有效期的方式调用 cookie 对象的 setMaxAge(intexpiry)方法,其中参数 expury 代表 cookie 的有效 时间,以秒为单位
cookie 与 session 作用域的区别
session 作用域是在服务器端保存用户信息,cookie 是在客户端保存用户信息
session 作用域中保存的值是 Object 类型, cookie 保存的值 String 类型
session 作用域随会话的结束 而将其储存的数据销毁, cookie 可以长期保存仔客户端
cookie 通常用于保存不重要的一些信息,重要的信息使用 session 作用域保存。