session会话中removeAttribute()和invalidate()的区别是什么

session.removeAttribute()用于清空指定的属性, 会话存在,只是被指定的属性被清空。

session.invalidate()是清除当前session的所有相关信息,相当于销毁会话

removeAttribute()

是从session中删除指定名称的绑定对象,

也可以理解为是说调用此方法后再调用getAttribute([属性])时,是不能获取与指定名称绑定对象的值的,但是session还存在。invalidate()就是销毁此session对象,session对象中绑定的那些对象值都被销毁.

session.invalidate()用来销毁跟用户关联session会话,

如果强制关闭浏览器,跟踪用户的信息的session依旧存在,可是用户已经离开了。
session 生命周期浏览默认时间30分,但是在30分钟内别的用户还可以访问到前一个用户的页面,所以才需销毁用户的session,保护用户的隐私。
session.removeAttribute()方法用来移除session会话中的某项属性。
例如:

request.getSession().removeAttribute("userId");
注销用户销毁session会话,是当前会话失效。
request.getSession().invalidate();

session.removeAttribute()是清空当前session中指定的属性,会话域中的唯一标识不变。也就是说会话还是那个会话只是某些属性被清空而已。

猜你喜欢

转载自blog.csdn.net/qq_40001362/article/details/85285003