Session简述

Session是用于跟踪用户状态的机制,服务器在会话开始时创建session对象,并通过cookie在客户端存储sessionID。它在一次会话期间有效,可存储各种数据,包括基本类型、数组、集合和对象。session获取和移除数据通过键值对操作,区别于request,session在浏览器关闭、超时或手动销毁后结束。session的生命周期包括创建、浏览器关闭、超时或手动销毁等阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session概述

session用于记录用户的状态,指的是在一段时间内,单个客户端和web服务器的一连串相关的交互过程。

  在一个session中,客户可能会多次请求访问同一个资源,也有可能请求访问各种不同的服务器资源。
 

session原理

服务器会为每一次会话分配一次session对象(由服务端创建)

  同一个浏览器发起的多次请求,同属于一次会话

  首次使用session时,服务器会自动创建session,并创建cookie存储sessionid发送给客户端

session的作用域

session的作用域是存储数据的空间,作用范围是一次会话有效

  •一次会话是使用同一浏览器发送的多次请求,一旦浏览器关闭,则结束会话

  •可以将数据存入session中,在一次会话的任意位置进行获取

  •可以存储任何数据(基类、数组、集合、对象)

session的获取

session已经被封装成一个类,是服务端自动创建的,我们就要通过request对象获取,每个session在创造时都带有sessionId,对于每次会话的sessionId是不同的

//1.通过request对象获取session对象
HttpSession session = request.getSession();
//2.查看sessionId
System.out.println(session.getId());

session保存数据

 我们可以通过键值对的形式,把数据保存在session里

session.setAttribute("key",value);

session获取数据

同样的我们可以根据key来获取value

session.getAttribute("key");

session移除数据

 通过removeAttribute方法移除指定key的session数据

session.removeAttribute("key");

session和request的区别

  session和request一样,都可以设置键值对存储数据,但不同的是

  •request是请求有效,请求改变则request

  •session是会话有效,浏览器改变则session改变

session的生命周期

 •开始:第一次使用session的请求产生则创建session

  •结束:浏览器关闭、session超时、手动销毁

  设置session时限,单位是秒

session.setMaxInactiveInterval(seconds);

  销毁session,我们常在手动注销中使用

session.invalidate();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值