Java中cookie的使用
1.JavaWeb会话:
会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程,例如,一个用户在某网站上的整个购物过程就是一个会话。
(1)客户端请求Web服务器时,针对每次HTTP请求,Web服务器都会创建一个HttpServletRequest对象,该对象只能保存本次请求所传递的数据。
(2)使用ServletContext对象保存数据时,由于同一个Web应用共享的是同一个ServletContext对象,因此,当用户在发送结账请求时,由于无法区分哪些商品是哪个用户所购买的,而会将该购物网站中所有用户购买的商品进行结算,这显然也是不可行的。
(3)为了保存会话过程中产生的数据,在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。
2.cookie概念
- Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据
- 首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来
- 当客户端再次请求同一服务器时,客户端会在请求头中添加该服务器保存的Cookie,发送给服务器
- Cookie就是服务器保存在客户端的数据
- Cookie就是一个键值对

3.cookie的方法
| 方法声明 | 功能描述 |
|---|---|
| Cookie(String name, String value) | 构造方法 |
| getName() | 获取Cookie的名称 |
| setValue() | 设置Cookie的值 |
| getValue() | 获取Cookie的值 |
| setPath() | 设置Cookie项的有效目录路径 |
| getPath() | 获取Cookie的路径 |
| setDomain() | 设置Cookie的有效域 |
| setMaxAge() | 设置Cookie在浏览器上保持的时间,以秒为单位 |
| getMaxAge() | 获取Cookie在浏览器上保持的秒数 |
| setVersion() | 设置Cookie采用的协议版本 |
| getVersion() | 获取Cookie采用的协议版本 |
| setComment() | 设置Cookie的注解部分 |
| getComment() | 获取Cookie的注解 |
| setSecure() | 设置Cookie是否使用安全的协议传送 |
| getSecure() | 获取Cookie是否使用安全的协议传送 |
4.cookie的使用
public void addCookie(HttpServletResponse response, String token, User user) {
redisService.set(UserKey.token, token, user);
Cookie cookie = new Cookie(COOKIE_NAME_TOKEN, token);
cookie.setMaxAge(UserKey.token.expireSeconds()); //cookie的有效期和token保持一致
cookie.setPath("/");//设置为网站根目录
response.addCookie(cookie);
}
本文详细介绍了JavaWeb中的会话概念,包括客户端与Web服务器之间的交互过程,以及会话数据保存机制。深入探讨了Cookie的概念、方法和使用,如构造方法、设置有效期、路径等,帮助读者掌握Cookie在Web开发中的应用。
346

被折叠的 条评论
为什么被折叠?



