JavaWeb开发之Session会话技术

  Session会话技术是将数据存储在远程web服务器端的技术,会在远程服务器上为每个客户端浏览器都创建一块内存空间存储数据,客户端浏览器需要每次都携带一个标识ID去远程服务器中寻找属于自己的内存空间,Session会话技术的实现需要借助于Cookie会话技术,使用cookie来存储客户的唯一标识SESSIONID;
  
  Session是如何做到在一个web资源中存储数据,在其他web资源当中取出当初存储的数据?其实现方式如下:
  每一个客户端浏览器访问远程服务器时,如果我们使用session的话,那么就会给该客户端浏览器分配对应的存储空间,并且创建的存储空间有一个编号我们称为SessionID,第一次访问时会把对应的SessionID以Cookie的形式写给浏览器,下次再访问时会携带SessionID找到当初创建的存储空间,在对应的存储空间中取出数据;
  
  Session常见操作:
  一、获取Session对象:HttpSession session = request.getSession();
  注意点:
    1、 获取的是专属于当前会话的Session对象
    2、如果远程服务器端没有该会话的Session对象,会自动创建一个新的Session返回,如果已经有了属于该会话的Session,那么直接将已有的Session返回
    3、判断远程服务器上是否有session主要就是根据SESSIONID判断该客户端浏览器是否在远程服务器上已经存在Session了
  
  二、向Session当中存取数据:Session对象是一个域对象,主要有以下方式存储、取出、删除session中的数据
    1、存储数据:session.setAttribute(String name,Object obj);
    2、取出数据:session.getAttribute(String name);
    3、删除数据:session.removeAttribute(String name);
  
  三、Session的生命周期和作用范围:
    1、session创建:第一次执行request.getSession()时创建
    2、session销毁:
      (1)、远程web服务器关闭停止时
      (2)、session过期/失效(默认30分钟,是从最后一次操作结束时计时)
      (3)、手动调用方法销毁,session.invadate
    注意点:客户端浏览器关闭时session就销毁这句话是不正确的,只是因为sessionID是利用cookie会话存储的,浏览器关闭sessionID销毁了所以就找不到存储session的那一块空间
    3、session作用范围:默认在一次浏览器与远程服务器的会话中,任何web资源公用一个session对象

  Session的特点:
    1、存储一次会话中多次请求的数据,存储在远程服务器端
    2、Session可以存任意大小,任意类型的数据

posted @ 2021-09-09 16:58  忘chuan  阅读(166)  评论(0)    收藏  举报