上周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清除你所写入浏览器缓存中的数据。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报