会话技术
http协议请求事务处理没有记忆能力,每次请求都是一次新请求,无法对用户的状态保存,尤其是同一台浏览器的访问,服务器不知道这是刚才的浏览器,所以为了保存和跟踪用户的状态使用会话技术,从用户访问某个网站到关闭浏览器的过程称为会话。
会话技术有两中,客户端会话:Cookie,服务端会话:Session。
Cookie的使用
Cookie是浏览器每次请求后再关闭时从服务端以响应头set-cookie发送给每一个用户的浏览器,最终保存在本机的文件夹中。
构造方法
javax.servlet.http 包中定义了一个 Cookie 类,使用带参构造方法创建Cookie对象
Cookie c = new Cookie(name, value);
参数name为Cookie的名,参数value为Cookie的值,
获取Cookie的对象
返回类型 | 方法名 | 说明 |
---|
void | addCookie(Cookie cookie) | 在响应头怎加一个Set-Cookie 头字段。 | Cookie | getCookies() | 回去客户端提交上来的Cookie,返回Cookie数组 |
Cookie方法
返回类型 | 方法名 | 说明 |
---|
int | getMaxAge() | 获取Cookie的最大有效时间以秒为单位,默认值为-1 | String | getPath() | 获取Cookie的有效路径 | String | getName() | 获取Cookie的名称 | String | getValue() | 获取Cookie的值 | int | getVersion() | 获取Cookie的版本 | void | setPath(String uri) | 指定Cookie的路径 | void | setMaxAge(int expiry) | 用于设置 Cookie 的最大有效时间,以秒为单位。取值为正值时,表示 Cookie 在经过指定时间后过期。取值为负值时,表示 Cookie 不会被持久存储,在 Web 浏览器退出时删除。取值为 0 时,表示删除该 Cookie。 | void | setValue(String newValue) | 设置Cookie的值 |
使用Cookie的注意事项
- 一个Cookie至少包含一个名称及一个值
- 如果创建了一个 Cookie,并发送到浏览器,默认情况下它是一个会话级别的 Cookie。用户退出浏览器就被删除。如果希望将 Cookie 存到磁盘上,则需要调用 setMaxAge(int maxAge) 方法设置最大有效时间,以秒为单位。
|