当我单击注销按钮时,我希望清除浏览器缓存。
我正在尝试使用以下代码清除浏览器缓存:
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/