Question:
When I redirect a request from a Servlet to a JSP, the browsercaches the JSP and won’t display an updated page without reloading.How do I prevent the page from being cached?
Answer:
The HTTP/1.1 specification specifies a header called Cache-Control,that can be used to alter the caching behavior of clients andintermediate proxy servers. Setting the value of this header to”no-cache” causes an HTTP response not to be stored by any interveningcaches. However, HTTP/1.0 clients may not recognize the Cache-Controlheader. For these clients, adding a Pragma header field with thevalue “no-cache” will serve the same purpose, but not all HTTP/1.0clients will necessarily recognize this header. To account forHTTP/1.0 clients that don’t recognize a “Pragma: no-cache” header, youcan set the expiration time of the response to a past date using theExpires date header field. Here’s an example of how to do this withina JSP page using the response variable, which is an instance ofHttpServletResponse.
response.setHeader("Cache-Control", "no-cache");response.setHeader("Pragma", "no-cache");response.setDateHeader("Expires", 0);
Make sure to set these headers before your JSP page produces anyoutput, otherwise the headers may not take effect.