Cookie&Session
1、会话
会话:打开浏览器访问web资源的过程
有状态会话:cookie 或session
2、保存会话的技术
cookie
- 客户端技术
session
- 服务器技术,保存用户的会话信息
区别
- cookie是把用户的数据写给用户的浏览器,浏览器可以保存(多个)
- session把用户的数据写到用户独占session中,服务器端保存(保存重要信息,减少服务器资源的浪费)
3、Cookie
- 从请求中拿到cookie
- 服务器响应给客户端cookie
Cookie[] cookies = req.getCookies();//获得cookie
cookie.getName();//获得cookie中的key
cookie.getValue();//获得cookie中的value
new Cookie("",);//新建cookie
cookie.setMaxAge(24*60*60);//设置cookie有效期
resp.addCookie(cookie);//response添加cookie
cookie一般保存在本地目录下appdata
- 一个cookie只能保存一个信息
- 一个web站点可以给浏览器发送多个cookie,最多存放20个
- cookie大小限制4kb
删除cookie
- 不设置有效期,关闭浏览器,自动失效
- 设置有效期时间为0
编码解码
URLEncoder.encode("","utf-8");
URLDecoder.decode(cookie.getValue(),"UTF-8");
4、Session
- 服务器会给每一个用户创建一个Session对象
- 一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在
- 用户登录之后,整个网站都可以访问
使用场景
- 保存一个登录用户的信息
- 购物车信息
- 在整个网站中经常会使用的数据,将它保存在session中