Подтвердить что ты не робот

Добавьте заголовок Expires или Cache-Control в JSP

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

4b9b3361

Ответ 1

Чтобы отключить кеш браузера для 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.

Таким образом, вам не нужно копировать эту информацию поверх всех страниц JSP и загромождать их скриптлетами.

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

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

См. также:

Ответ 2

<%
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
%>

Ответ 3

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

Ответ 4

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