如何清除servlet中的浏览器缓存?

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.

请给我建议,以清除此错误!

ljg*_*jgw 6

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

另请参见: 如何在JSP页面中控制缓存?:

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.
Run Code Online (Sandbox Code Playgroud)

编辑:显然可以使用javascript和刷新以编程方式清除缓存,但我怀疑这是你在寻找: 如何以编程方式清空浏览器缓存?