Har*_*esh 2 java jsp servlets cache-control
当我点击注销按钮时,我希望清除浏览器缓存.
我正在尝试使用以下代码清除浏览器缓存:
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;
}
Run Code Online (Sandbox Code Playgroud)
注销后在浏览器窗口中按下后退按钮时,我需要浏览器不显示上一页.
当我点击后退按钮时,它显示上一页,点击浏览器窗口中的前进按钮后显示document expired
.
请给我建议,以清除此错误!
您无法清除缓存,但可以要求不会缓存您的网页.这意味着您必须为会话中的每个页面执行此操作(否则后退按钮将继续工作,并且您的注销页面是唯一未缓存的页面).
另请参见: 如何在JSP页面中控制缓存?:
Run Code Online (Sandbox Code Playgroud)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和刷新以编程方式清除缓存,但我怀疑这是你在寻找: 如何以编程方式清空浏览器缓存?