javaWeb登录session问题

不是关闭浏览器 会话cookie会被删除吗 我试了谷歌和火狐 为什么关了浏览器 重开还是免登录?

0

9个回答

这个原因是cookie的生命周期问题,如果设置cookie.setMaxAge(-1),那么关闭浏览器,cookie就没了,sessionid也就没了,当你再次访问服务器的时候,服务器就会创建一个新的session会话,就不会有你上述的免登录状态。如果cookie.setMaxAge(大于0),cookie就不会随关闭浏览器而删除,它会随你设置的时间而生命结束,在这种情况下,当你去访问服务器的时候,浏览器会把这个cookie的sessionid发送到服务器,那么服务器会根据sessionid找到跟它绑定的session对象,那么这个session会话就包括了你上一次访问的内容,所以你会看到有免登录的状态。

0
Mr_aaao
Mr_aaao 回复u01479464cookie的生命周期默认设置为-1,表示只在浏览器中存活,关闭就没了。如果生命周期设置为大于0,表示把cookie保存到硬盘上,就算关闭浏览器cookie都不会消失,关键看你生命周期设置为多少它就活多久。可以采纳一下我哦~
大约一年之前 回复
u014794644
瓦史托德 还要自己设置的吗,网上都说会话cookie是关闭浏览器删除的,我还以为不同浏览器不一样
大约一年之前 回复

因为session的机制其实就是cookies一样的(叫 session id ), ,在浏览器(客户端)里是存着这个的,你没清缓存之前或是服务器这边没有清掉
,其实还是可以免登录 的, 具体可以去了解一下http 1.1的协议

1
u014794644
瓦史托德 确实要自己清缓存,网上都说这个sessionid关闭浏览器就会被删除,我就试了一下
大约一年之前 回复

session是会关闭的,一个浏览器访问一个Web项目, 后来打开的页面会覆盖前面的session的value的值, 你关闭浏览器后session肯定会关闭的
你试一试用谷歌登入后,再用火狐访问那个页面是不是也直接跳进去,如果是, 就是你代码有问题

0

调用相应的方法可以清除session 另外 session对应的是一次对话,浏览器关闭后,sesssion也就退出了

0

Session和Cookie不同,session是保存在服务器端的由SessionID来标识,当你把浏览器关闭的时候,Session也会随着被关闭,你重新启动浏览器后会另外创建一个Session
而Cookie是保存在客户端的,其是目的为了减轻服务器端的压力,一般设得有生存时间,只要服务器一直开着,在其生存时间内,不管你是重启还是打开新的浏览器,Cookie都不会变

0
qq_15734597
qq_15734597 你试一试用谷歌登入后,再用火狐访问那个页面是不是也直接跳进去,如果是, 就是你代码有问题
大约一年之前 回复
qq_41641324
乂夜逅秋风 准确的来说Cookie应该是保存在浏览器端的,也就是以浏览器为单位的吧.你关了谷歌,再去火狐能找到这个CookieId?别闹
大约一年之前 回复

按照你说的这个,应该是你设置了cookie的生命周期.cookie默认的生命周期是一次会话.如果没有设置cookie的生命周期,那么cookie是存在内存中的,每次关闭浏览器后cookie都会消除.反之,如果你设置了cookie的生命周期,那么cookie就保存在硬盘上了.如果你的浏览器没有设置每次关闭都自动清除cookie的话,那么你再打开浏览器cookie还存在的.

0

你说的 很对,关闭浏览器 sessionStrory 确实被清除, 但是 你登录的信息 ,有可能是 保存在 cookie 或 localStroery 中的啊, 看代码中怎么写了。

若是 保存在 cookie 或 localStroery 中的, 再次打开浏览器,免登陆,在正常不过嘛。。。关键看代码怎么写

0

session会话默认是30分钟,调用invalidate()方法后session失效,30分钟后session失效,清除浏览器记录session失效。否则session就一直存在。

0

session是有一定的声明周期,需要时还可以固化在本地文件。对生命周期可以进行设定。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!