session.invalidate()

当浏览器第一次请求时,服务器创建一个session对象,同时生成一个sessionId,并在此次响应中将sessionId 以响应报文的方式传回客户端浏览器内存或以重写url方式送回客户端,来保持整个会话。关闭此浏览器窗口,其内存中的sessionId也就随之销毁。

 

session.invalidate()是将session设置为失效,一般在退出时使用,但要注意的是:session失效的同时 浏览器会立即创建一个新的session的,你第一个session已经失效了 所以调用它的getAttribute方法时候一定会抛出NullPointerException的

session.remove("111")//移除111的对象

jsessionid只是tomcat中对session id的叫法,在其它容器里面,不一定就是叫jsessionid了

 

 其次你编程的时候实现了添加cookie或者用的是session 这两者都会产生cookie  cookie name 为JSESSIONID 应该是你用了session编程,它会在记录此窗口的临时cookie 放在内存中 只要你这个窗口不关掉 它的子窗口也可以得到这个cookie 并使用但你一旦关掉了这个窗口 这个cookie就消失了

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1665538

 

session对象的removeAttribute()方法和invalidate()方法的区别

 

对于存储在session会话中的对象,如果想将其从session会话中移除,可以使用session对象的removeAttribute()方法。例如:

 
  1. <%

  2. session.removeAttribute("username");

  3. %>

这样就将session中名称为username的名称-值对移除了。

虽然在客户端长时间不向服务器发送请求后,session对象会自动消失,但对于反复登陆或实时统计在线用户的情况下,必须使用invalidate()方法手动销毁session。

 
  1. <%

  2. session.invalidate();

  3. %>

如果在session被销毁后,再调用session对象的任何方法,都将报出 Session already invalidated异常,意为“session已经被销毁”。

由以上可以看出,执行一次removeAttribute()只是移除此session中的某一指定的名称-值对,而invalidate()将会移除整个session,里面现存的session都将被移除。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值