跳到主要内容

Session

概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中:HttpSession

快速入门:

HttpSession对象:

  1. 获取Session对象

    HttpSession session = request.getSession();
  1. 使用Session对象:

    • void setAttribute(String name,Object value);

    • Object getAttribute(String name);

    • void removeAttribute(String name);

Session创建过程(原理):

  1. 浏览器第一次访问服务器端时,服务器端会检查请求头中的cookie是否含有JSESSIONID,如果没有,服务器会创建一个Session对象,并响应给浏览器一个JSESSIONID:
image-20200603162747986
  1. 浏览器之后再访问服务器端时,请求消息的请求头cookie会携带服务器给的JSESSIONID,服务器端收到请求后会按照JSESSIONID检索Session对象(如果检索不到,可能会新建一个)
image-20200603163350289

SESSIONID的值一般是一个既不会重复,又不容易被仿造的字符串,这个SESSIONID将被在本次响应中返回给客户端保存。保存sessionId的方式大多情况下用的是cookie。