Session的常用方法

1.request.getSession(true)

若存在会话就返回一个会话,不存在就创建一个.
返回值为HttpSession

2. session.invalidate();

这个方法就是将session中的变量全部清空

3. session.setAttribute(key,value);

设置属性 key ,value

4. session.getAttribute(key);

获取key的值

5.session.removeAttribute(key);

删除属性为key的值

6.重点:

让我们看一下session的属性:

在这里插入图片描述
里面有个attributes的属性,这个属性就是我们的 setAttribute 存储的位置.这个
attributes 是HashMap类的对象.
HashMap的key value都可以为空.
所以这就可以解释:为什么我们session.getAttribute(key);和 session.setAttribute(key,null);不会报NullPointerException(),注意当我们debug的时候发现还有这个attributes属性啊.session又不为空为什么不能直接再session.setAttribute呢.而是用request.getSession(true)呢?其实当我们已经执行了session.invalidate();的时候其实它已经把attributes里面的Map的引用置为null而不是把它里面的属性置为空.如果我们执行setAttribute会报空指针异常的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值