Cookie

客户端会话技术,客户端保存,用于存储少量不太敏感的数据,在不登陆的情况下完成服务器对客户端的身份识别

简单使用步骤

  1. 创建Cookie对象,绑定数据
  • new Cookie(String name, String value)
  1. 发送Cookie对象
  • response.addCookie(Cookie cookie)
  1. 获取Cookie对象,拿到数据
  • Cookie[] request.getCookies()

细节

  • 默认情况下,当浏览器关闭后,Cookie数据被销毁
  • 持久化存储:setMaxAge(int seconds)
  • 正数:将Cookie数据写到硬盘的文件中,时间到后,cookie文件自动失效
  • 负数:默认值
  • 零:删除cookie信息
  • 默认项目间不能共享,设置 setPath(String path) 为"/"
  • 不同服务器间共享 setDomain(String path)

Session

服务器会话技术,服务器端保存,没有数据大小限制

简单使用步骤

  1. 获取HttpSession对象
  • HttpSession session = request.getSession()
  1. 使用HttpSession对象
  • Object getAttribute(String name)
  • void setAttribute(String name, Object value)
  • void removeAttribute(String name)

细节

  1. 客户端关闭,服务器不关闭,保持session为同一个方法
  • 创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
  1. 客户端不关闭,服务器关闭,保持session为同一个方法
  • session钝化与活化
  1. 使用session时要开启cookie,否则会导致SessionID不一致