页面会话技术
Cookie
- 什么是cookie:服务端保存在浏览器端的数据片段。以 key/value的形式进行保存。每次请求的时候,请求头会自动包含本网站此目录下的 cookie 数据。网站经常使用这个技术来识别用户是否登陆等功能。
- 用途:保存登录状态,购物车等
- 缺点:
- 做为请求或响应报文发送,无形中增加了网络流量。
- 明文传送的安全性差。
- 保存数据是不稳定的,用户可以随时清理 cookie,各个浏览器对 Cookie 有限制,使用上有局限
Cookie的使用
服务器向客户端传Cookie
- 创建Cookie对象
Cookie cookie = new Cookie("key", "val");
- 将cookie放入response响应给客户端
response.addCookie(cookie);
可以同时设置多个Cookie
服务器获取客户端Cookie的值
- 获取Cookie
Cookie[] cookies = request.getCookies();
- 遍历cookies数组判断查找想要的值
Session
-
Session的特性
-
服务器会给每个用户创建一个Session对象
-
每个Session独占一个服务器,只要浏览器不关闭,这个Session就存在
-
一个Session可以访问此服务器(整个网站)的所有网页
-
Session在浏览器打开的一瞬间就存在
-
Session里可以保存对象
-
Session被注销会产生一个新的Session
-
-
和Cookie的区别
- Cookie将用户数据写给浏览器,由客户端浏览器保存
- Session吧用户数据写入用户独占的Session中,由服务器保存
- Session对象由服务器创建
Session的使用
-
获取Session
-
HttpSession session = request.getSession();
-
-
在Session中保存数据
-
session.setAttribute("key","value");
-
-
获取Session的Id
-
String sessionId = session.getId();
-
-
判断是否是新创建的
-
session.isNew();
-