Вопрос

Как вы добавляете Expires или а Cache-Control Заголовок в JSP? Я хочу добавить дату истечения срока годности в дальней будущей странице для моих статических компонентов, таких как изображения, CSS и файлы JavaScript.

Это было полезно?

Решение

Чтобы отключить кэш браузера для страниц JSP, создать Filter который сопоставлен на url-pattern из *.jsp и делает в основном следующее в 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.

Таким образом, вам не нужно Copypste это по всем страницам JSP и беспорядок их сценарий.

Чтобы включить кэш браузера для статических компонентов, таких как CSS и JS, поместите их все в общей папке, как /static или /resources и создать а Filter который сопоставлен на url-pattern из /static/* или /resources/* и делает в основном следующее в doFilter() Метод:

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

Смотрите также:

Другие советы

<%
    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
%>

Контейнеры сервлета, такие как Tomcat, поставляются с набором предопределенных фильтров. Смотреть, например Истекает фильтр. Отказ Может быть проще использовать существующие, чем создать свой собственный аналогичный фильтр.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top