Session(会话)的三种创建方式

Session(会话)

(1)session是什么?

服务器为了保存用户状态而创建的一个特殊的对象,该对象一般称之为
session对象。

(2)session工作原理

当浏览器第一次访问服务器时,服务器会创建一个session对象
(该对象有一个唯一的id,一般称之为sessionId),接下来服务器
会将sessionId以cookie的方式发送给浏览器。
当浏览器再次访问服务器时,会将sessionId发送过来,服务器
就可以利用sessionId找到对应的session对象。

(3)如何获得session对象?

方式一:

HttpSession s = request.getSession(true);
注:
	当flag为true时,先查看请求当中是否有sessionId,如果没有
sessionId,则创建一个session对象;如果有sessionId,则
依据该sessionId去查找对应的session对象,如果找到了,则
返回该session对象,如果没有找到,则创建一个新的session对象。

方式二:

HttpSession s = request.getSession(false);
注:
	当flag为false,先查看请求当中是否有sessionId,如果没有,
返回null;如果有sessionId,则依据该sessionId去查找对应的
session对象,如果找到了,则返回该session对象,如果没有找到,
返回null。

在这里插入图片描述

方式三:

HttpSession s = request.getSession();
等价于 request.getSesion(true)。实际工作中一般常用这个。

(4)使用session进行状态管理

a.将数据绑订到session对象上:
	session.setAttribute(String name,Object obj);
b.依据绑订名获得绑订值:
	Object session.getAttribute(String name);
c.解除绑订:
	session.removeAttribute(String name);

(5)session超时

a.什么是session超时?

服务器会把空闲时间过长的session对象从内存当中删除。
为了节省内存空间。
注:
	空闲时间一般是半个小时。

b.如何修改超时时间长度?

方式一: 修改web.xml
	<session-config>
    	<session-timeout>30</session-timeout>
	</session-config>
注:
	每一个web应用都有一个web.xml,另外,容器也有一个
	web.xml。

方式二: session.setMaxInactiveInterval(int seconds);
注:
	用于设置两次请求之间最大的间隔时间长度,如果超过这个
时间长度,服务器会将session删除。

(6)删除session

session.invalidate();
  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研程序笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值