重复登录问题
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、出现上述这种情况猜测是缓存的问题,这里同学可以在访问前将浏览器缓存清理一下,然后再访问
http://localhost:8080/index
2、浏览器窗口关闭后,下次会是新的sessionID,因为cookie一般关闭浏览器就会失效,其中cookie保存的sessionid也跟着失效。而关闭浏览器后之前的session不会再用到了,当浏览器关闭再开启时,浏览器自身携带的cookie发生了变化,这个cookie会携带服务器分配的sessionID,那么当关闭浏览器时,cookie中的sessionID消失,浏览器在重新请求中又会重新分配sessionId,之前的session虽然存在,但不会再使用之前的session了
3、浏览器2并没有进行登录,所以直接访问index就会出现空指针异常
祝学习愉快~
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星