为什么清除缓存后会话丢失或结束。虽然在服务器上提到了会话。我是 Java 开发人员,我从HttpServletRequest
对象获得了会话。
我们在服务器端管理会话。那么它与浏览器和客户端有什么关系呢?为什么清除缓存后我们的网站会退出?
我用我的gmail帐户尝试过。当我关闭浏览器并再次打开 gmail 或清除缓存时,它显示我已注销。我做了谷歌但无法得到令人满意的答案。任何人都可以清除它吗?
为什么清除缓存后会话丢失或结束。虽然在服务器上提到了会话。我是 Java 开发人员,我从HttpServletRequest
对象获得了会话。
我们在服务器端管理会话。那么它与浏览器和客户端有什么关系呢?为什么清除缓存后我们的网站会退出?
我用我的gmail帐户尝试过。当我关闭浏览器并再次打开 gmail 或清除缓存时,它显示我已注销。我做了谷歌但无法得到令人满意的答案。任何人都可以清除它吗?
跟踪会话的标准机制是 cookie。清除浏览器的缓存,因此也清除 cookie,将导致在发出请求时不会将会话 ID 发送到服务器,因此它别无选择,只能开始新的会话。
您的服务器端框架使用客户端计算机上的 cookie 来跟踪会话。当它消失时,它会丢失会话上下文。
当您说“缓存已清除”时,我假设您正在谈论您的浏览器缓存。
如果是这样,您在清除缓存时正在做的事情之一就是删除您访问的网站设置的所有cookie。cookie 是网站(例如 GMail)用来确定您与之前以“Abhendra Singh”身份登录的同一个人的标识符。
您在服务器上的 Session 对象只是表示。会话信息默认由浏览器中的 cookie 维护,cookie 名为JSESSIONID
. 您可以在这里找到更多信息,请参阅 BalusC 的答案。
如果在浏览器上禁用 cookie,则JSESSIONID
必须将其作为参数附加到 URL。这意味着在重定向的情况下,您必须调用HttpServletResponse#encodeRedirectURL或使用c:url
标签作为页面中的链接。