页面会话技术介绍,什么是Cookie和Session

发布时间 2023-06-16 10:31:08作者: ---Wg---

页面会话技术

  • 什么是cookie:服务端保存在浏览器端的数据片段。以 key/value的形式进行保存。每次请求的时候,请求头会自动包含本网站此目录下的 cookie 数据。网站经常使用这个技术来识别用户是否登陆等功能。
  • 用途:保存登录状态,购物车等
  • 缺点:
    • 做为请求或响应报文发送,无形中增加了网络流量。
    • 明文传送的安全性差。
    • 保存数据是不稳定的,用户可以随时清理 cookie,各个浏览器对 Cookie 有限制,使用上有局限

Cookie的使用

服务器向客户端传Cookie

  1. 创建Cookie对象
Cookie cookie = new Cookie("key", "val");
  1. 将cookie放入response响应给客户端
response.addCookie(cookie);

可以同时设置多个Cookie

服务器获取客户端Cookie的值

  1. 获取Cookie
Cookie[] cookies = request.getCookies();
  1. 遍历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();