重复登录问题

重复登录问题

session会话用于保存浏览器窗口的数据,30分钟没有被访问就会被销毁,关掉浏览器的窗口,不会销毁这个session,只会抛弃了session对应的cookie; cookie里存sessionID;

那为什么关闭窗口后,输入http://localhost:8080/index,又可以登录了啊。 

不是每次窗口请求会出现一个sessionID,如果窗口关了,下次会是新的ID吗? 是因为IndexServlet中的

User user= (User) session.getAttribute("login_user");

这个参数吗? 发送请求进入后端,确实创建了新的sessionID,这时候的sessionID也确实为空,但是我们获取了session之前会话中存储的属性,所以可以重复登录。是这个原理吗。


2、为什么我在浏览器1访问过了http://localhost:8080/index之后,在浏览器2访问就是空指针异常了啊。 

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2021-05-06 11:55:09

同学你好,老师是针对同学第一次的提问进行的回复,为避免出现问题遗漏,建议你不要随意修改问题。

1、出现上述这种情况猜测是缓存的问题,这里同学可以在访问前将浏览器缓存清理一下,然后再访问

http://localhost:8080/index

​2、浏览器窗口关闭后,下次会是新的sessionID,因为cookie一般关闭浏览器就会失效,其中cookie保存的sessionid也跟着失效。而关闭浏览器后之前的session不会再用到了,当浏览器关闭再开启时,浏览器自身携带的cookie发生了变化,这个cookie会携带服务器分配的sessionID,那么当关闭浏览器时,cookie中的sessionID消失,浏览器在重新请求中又会重新分配sessionId,之前的session虽然存在,但不会再使用之前的session了

3、浏览器2并没有进行登录,所以直接访问index就会出现空指针异常

祝学习愉快~


  • 提问者 rock221 #1

    老师也就是说,当窗口关闭的时候,重新打开一个窗口,之前的session中的信息就无法访问了吗? 那之前登录过,再次登录就识别不到登录信息了吗?

    2021-05-06 11:59:27
  • 提问者 rock221 #2

    老师,那就是说当关闭一个窗口后,或者打开一个新的窗口, 都无法识别到之前登录过的信息了吗?

    2021-05-06 12:00:28
  • 提问者 rock221 #3

    老师你说的是关闭浏览器cookie会失效, 那么不关闭浏览器的话, 只关闭窗口,然后还访问这个网址, 应该还能访问到之前的session信息吧,因为当浏览器第二次发送请求的时候会附加之前的sessionId的cookie,

    2021-05-06 12:10:55
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师