Pregunta

¿Cómo agregar un Expires o un encabezado Cache-Control en JSP? Quiero añadir un futuro lejano fecha de caducidad en un include página para mis componentes estáticos como imágenes, archivos CSS y JavaScript.

¿Fue útil?

Solución

Para desactivar la caché del navegador de páginas JSP, crear un Filter que se mapea en una url-pattern de *.jsp y hace básicamente lo siguiente en el método doFilter():

HttpServletResponse httpResponse = (HttpServletResponse) response;
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.

De este modo, no es necesario CopyPaste esta sobre todas las páginas JSP y el desorden con scriptles .

Para habilitar la caché del navegador para los componentes estáticos como CSS y JS, los puso en una carpeta común como /static o /resources y crear un Filter que se mapea en una url-pattern de /static/* o /resources/* y hace básicamente lo siguiente en el método doFilter():

httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.

Ver también:

Otros consejos

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

contenedores de servlet como Tomcat vienen con un conjunto de filtros predefinidos. Véase, por ejemplo Expira Filtro . Puede ser más fácil de utilizar uno ya existente que crear su propio filtro similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top