出错情况是这样的:我本机运行没有错误,而局域网的其它机器访问我的机器时,选择第一个分类,设一个“SID”为"1"的session,转到一个页面,此时从session取出“SID”,得到"1"。接着我选择第二个分类时,设置“SID”的值为"2",这时转到另一个页面,然后从session中取出"SID",得到的值竟然还是"1"。
我首先从后台打印来着手,但选择第二个分类时,“SID”的值还是“1”。看来是页面从servlet到jsp时,session还是第一次的,没有更新。于是我增加了一个防止IE读缓存的代码:
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
问题终于得到解决。
本文介绍了一种在局域网环境下,不同机器访问同一服务器时遇到的Session值未能正确更新的问题及其解决方案。作者通过检查后台打印信息发现,尽管设置了新的Session值,但后续请求仍获取旧值。最终通过禁用浏览器缓存成功解决了该问题。
784

被折叠的 条评论
为什么被折叠?



