一、Session是什么?
Session对象存储特定用户会话所需的属性及配置信息。
当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个会话中一直存在下去。当用户请求来自应用程序的Web页面时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或者被放弃后,服务器将终止该会话。
我们在编写JavaWeb程序时,经常用Session来保存一些信息,最常见的就是保存用户的登录信息。既然我们用Session来保存信息,那么也会遇到删除Session信息的情况,比如说:用户退出。我们就需要删除掉服务器中存储用户登录信息的Session。
删除Session有两种方式,分别是:
(1)request.getSession().invalidate()
(2)request.getSession().removeAttribute()
接下来以一个列子介绍一下两者的区别。
例子:现在系统中有两个用户同时登录,那么系统将保存两个用户的信息。
HttpSession session = request.getSession();
session.setAttribute("user1",User1);
session.setAttribute("user2",User2);
一、request.getSession().invalidate()
作用:销毁当前会话域中的所有属性。
如果我们现在调用request.getSession().invalidate()函数,两个用户的Session信息将全部被清除。
二、request.getSession().removeAttribute()
作用:销毁当前会话域中的一个属性。
而如果我们想只消除user1的Session信息而保留user2的Session信息,则可使用request.getSession().removeAttribute()函数。
session.removeAttribute("user1");
运行这一行代码将会销毁user1的Session信息。