session.invalidate失效引发的疑问

session.invalidate();方法的执行可以让session失效。但是为何我在session.invalidate();这个方法执行前后输出的session.... session.invalidate();方法的执行可以让session失效。
但是为何我在session.invalidate();这个方法执行前后输出的session.getId();是一个值呢?
部分代码如下:

HttpSession session = request.getSession();
PrintWriter out = response.getWriter();
out.print(session.getId());
session.invalidate();
out.print("<br>");
out.print(session.getId());
展开
 我来答
kq66olbay
2011-06-08 · TA获得超过427个赞
知道答主
回答量:527
采纳率:100%
帮助的人:347万
展开全部

session.invalidate()是将session设置为失效

但是session失效的同时 浏览器会立即创建一个新的session的
你第一个session已经失效了 所以调用它的getAttribute方法时候一定会
抛出NullPointerException的
百度网友4db9f31
2011-06-05 · TA获得超过410个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:323万
展开全部
这个ID貌似是自动赋予的 只要你打开就会存在 只是每次登陆的时候值才会不同
追问
是的,在你访问jsp页面的时候,就会产生一个session,但是我已经调用了session.invalidate()方法了,为何还可以使用session.getId来获得值呢?
而session.getAttribute()就不能用
追答
这个是系统自动为每个用户会话分配的,相当于一个访问标示,每个session的ID都是不同的.只有退出的时候id才会销毁,session.invalidate()是使得和它绑定的对象都消失,id是每个session的标示,并不是session.setAttribute绑定的对象
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应 | 问题解决率99% | 24小时在线
立即免费咨询律师
17858人正在获得一对一解答
大连海浪之心6分钟前提交了问题
贵阳山水情深1分钟前提交了问题
石家庄麦田守望1分钟前提交了问题
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消
还有疑问? 马上咨询30791位在线律师,3分钟快速解答
立即免费咨询律师

辅 助

模 式