Как отключить кеширование внутри JSP-страницы
-
03-07-2019 - |
Вопрос
Я так понимаю, есть директива заголовка ответа HTTP для отключения кэширования страницы:
Cache-Control:no-cache
Я могу изменить заголовок с помощью " hand ":
<%response.addHeader("Cache-Control","no-cache");%>
Но есть ли & "хороший"! " способ заставить интерпретатор JSP вернуть эту строку заголовка в ответе сервера?
(Я проверил директиву <% @ page ...% > похоже, ничего подобного нет.)
Решение
Также добавьте
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
своим заголовкам и сделайте это. Р>
Другие советы
Если бы вы использовали сервлет, то я считаю, что то, что вы разместили в этом вопросе, было бы правильным подходом. Я не знаю ни одного способа сделать это в JSP.
<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:scriptlet><![CDATA[
response.setHeader("Cache-Control", "no-cache");
]]></jsp:scriptlet>
</jsp:root>
Вы должны поместить заголовок ответа внутри <jsp:root />
. Кроме того, я бы рекомендовал вместо этого посылать это с вашего сервлета, а не со страницы JSP. Р>
IIRC некоторые браузеры могут игнорировать настройки управления кэшем в некоторых контекстах. «Безопасный» обходной путь для этого состоял в том, чтобы всегда получать страницу (даже кусок AJAX) с новой переменной строки запроса (как время.)