小兔子程序猿 2023-04-05 19:04 采纳率: 100%
浏览 19
已结题

关于sessionid的一个小问题

上周java课teacher给我们讲了用来保存用户操作信息的session对象并说明了session对象的原理,teacher讲的是第一次请求session的时候创建session,并在请求结束后把保存sessionid的cokkie返回浏览器,浏览器访问站点的页面的时候会通过cokkie找到session,于是我写了一个登录的servlet,账户密码验证成功之后获取session并存入登录状态然后通过转发(不是重定向)的方式去请求员工列表的servlet,员工列表的servlet中需要获取session并获取登录状态,得到登录成功的状态之后才会展示页面,按理来说通过转发的方式是算作一次请求,那么保存了sessionid的cookie还没返回浏览器,但是为啥我的员工列表页面却获取成功了?我尝试着关闭浏览器,重启Tomcat容器,发现还是可以通过登录直接进入列表页面,虽然我知道转发的过程中传递了request对象和response对象,但是如果cookie是随着response对象返回浏览器的话,那么这一次转发的request对象中是没有携带cookie的,而我在员工列表的servlet中是通过request对象去拿到session,为什么可以拿到?是第一次获取session的时候已经把保存id的cokkie保存到了request对象中还是什么其他原因导致转发后的servlet可以访问到这个session,求指教

  • 写回答

2条回答 默认 最新

  • pengcheng15966836 2023-04-05 22:22
    关注

    第一次请求返回给浏览器后,浏览器缓存了数据。要么手动清除浏览器缓存,要么在某种条件下用js清除你所写入浏览器缓存中的数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月9日
  • 已采纳回答 4月9日
  • 创建了问题 4月5日