Prevent caching of JSP/Servlet output


In this example I will show you how to prevent caching of JSP/Servlet output using Cache-Control HTTP header.

Set Cache-Control header to prevent browser caching.

Browser caching can be disable by setting HTTP 1.1 Cache-Control header as shown below.

  1. response.setHeader("Cache-Control", "no-cache");

Prevent caching of JSP output

Put following scriptlet at the beginning of the JSP to prevent output caching

  1. <%
  2. response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
  3. response.setHeader("Pragma","no-cache"); //HTTP 1.0
  4. response.setDateHeader ("Expires", 0); //prevent caching at the proxy server
  5. %>

it is always good to set Pragma header too, in case HTTP 1.0 is used.

Prevent caching of Servlet output

  1.         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.  
  3.                 response.setHeader("Cache-Control","no-cache");
  4.                 response.setHeader("Pragma","no-cache");
  5.                 response.setDateHeader ("Expires", 0);
  6.                
  7.         }

References

Caching in HTTP
HTTP/1.1Header field definitions
List of HTTP headers