06. Servlet 防止页面被缓存

时间:2022-11-12 20:21:00
防止页面被客户端缓存

许多浏览器为了快速向用户展示所请求的页面,会对来自服务端的页面缓存在客户端中,缓存技术使用于静态页面的快速访问,但对于以下情况并不希望网页被用户缓存:
  • 页面中包含随时可能被更新的动态内容,如果此时浏览器向用户展示本地缓存中的网页,可能展示的是过去网页;
  • 网页中包含敏感信息,如果此时浏览器缓存网页,可能被其他未授权的用户访问到该网页;

在Servlet中,可以通过设置HttpServletReponse参数来 防止页面被客户端缓存
 
class DemoServlet extends HttpServlet{
    public service(HttpServletRequest request,HttpServletReponse reponse) throws ServletException, IOException{
        ...
        reponse.addHeader("Pragma","no-cache");
        reponse.setHeader("Cache-Control","no-cache");
        reponse.setHeader("Expires","0");
        ...
    }
}
其中“Pragma”和“Cache-Control”用于设定客户端是都可以缓存网页,“Pragma”选项适用于采用 HTTP 1.0 的浏览器,“Cache-Control”选项适用于 HTTP 1.1 的浏览器,
      “ Expires”选项用于设定网页过期时间,适用于 HTTP 1.0,HTTP 1.1;