gpt4 book ai didi

java - 如何从 servlet 中清除浏览器缓存?

转载 作者:行者123 更新时间:2023-12-02 14:38:25 25 4
gpt4 key购买 nike

当我单击注销按钮时,我希望清除浏览器缓存。

我正在尝试使用以下代码清除浏览器缓存:

if(uri.equals("/SciArchive/logout.sci"))
{
HttpSession session=req.getSession(false);
res.setHeader("Cache-Control","no-cache");
res.setHeader("Cache-Control","no-store");
res.setDateHeader("Expires", 0);
res.setHeader("Pragma","no-cache");
if(session!=null)
{
session.invalidate();
rd=req.getRequestDispatcher("/home.jsp");
}

rd.forward(req,res);
return;
}

注销后在浏览器窗口中按下后退按钮时,我需要浏览器不显示上一页。

当我点击后退按钮时,它会显示上一页,在浏览器窗口中点击前进按钮后,它会显示文档已过期

请给我建议来清除此错误!

最佳答案

您无法清除缓存,但您可以要求不缓存您的页面。这意味着您必须对 session 中的每个页面执行此操作(否则后退按钮将继续工作,并且您的注销页面是唯一未缓存的页面)。

另请参阅: How to control cache in JSP page? :

httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpResponse.setDateHeader("Expires", 0); // Proxies.

编辑:显然可以使用 javascript 和刷新以编程方式清除缓存,但我怀疑这就是您正在寻找的: How to programmatically empty browser cache?

关于java - 如何从 servlet 中清除浏览器缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com