session 介绍和使用

本文介绍了Java后端的Session技术,它是便于对象存储的服务器存储技术。用户首次访问时,服务器创建Session对象并通过Cookie存储JSESSIONID。其特点是存储在服务器、依赖Cookie等。作用是解决数据共享问题,还说明了使用注意事项、时机、作用域及失效处理方法。

介绍

便于对象存储的服务器存储技术

原理

用户第一次访问服务器, 服务器会创建一个session对象给用户, 并将该session对象的JSESSIONID使用Cookie技术存储到浏览器中, 保证用户的其他请求能够获取到同一个session对象, 也保证了不同请求能够获取到共享的数据

特点

  • 存储在服务器
  • 服务器进行创建
  • 依赖Cookie技术
  • 一次会话
  • 默认存储时间是30分钟

作用

解决了用户不同的请求处理的数据共享问题

使用

注意事项

如果服务器中有session对象, 那么返回session对象, 如果没有, 则创建session并返回

JSESSIONID是通过coocies技术存储在浏览器内存中, 每次重启都会有一个新的JSESSIONID, JSESSIONID用来和服务器存储的session进行匹配

如果浏览器存储的JSESSIONID失效了, 服务器会重新创建一个session, 返回JSESSIONID将失效JSESSIONID覆盖

使用时机

一般用户在登录web项目时, 会将用户信息存储在session中, 供用户的其他请求使用

作用域

在session对象和JSESSIONID不失效的情况下为整个项目内

失效处理

将用户请求中的JSESSIONID和后台取得的JSESSIONID进行比对, 如果不同, 则session失效

// 创建或取得session对象
HttpSession session = req.getSession();
System.out.println(session.getId());

// 设置session的失效时间
session.setMaxInactiveInterval(3600);

// 设置session强制失效
session.invalidate();

// 存储数据
session.setAttribute("name", new Object());

// 取得数据
session.getAttribute("name");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值