Добавьте истеки или заголовок Cache-Control в JSP
-
27-09-2019 - |
Вопрос
Как вы добавляете 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, поставляются с набором предопределенных фильтров. Смотреть, например Истекает фильтр. Отказ Может быть проще использовать существующие, чем создать свой собственный аналогичный фильтр.