Как отключить кэширование на странице JSP - PullRequest
4 голосов
/ 02 октября 2008

Я понимаю, что есть директива заголовка ответа HTTP для отключения кэширования страницы:

Cache-Control:no-cache

Я могу изменить заголовок "hand":

 <%response.addHeader("Cache-Control","no-cache");%>

Но есть ли "хороший" способ заставить интерпретатор JSP возвращать эту строку заголовка в ответе сервера?

(Я проверил директиву <% @ page ...%>. Кажется, ничего подобного нет.)

Ответы [ 4 ]

3 голосов
/ 04 октября 2008

Также добавьте

response.addHeader("Expires","-1");
response.addHeader("Pragma","no-cache");

своим заголовкам и сделайте это.

0 голосов
/ 02 октября 2008
<?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.

0 голосов
/ 02 октября 2008

IIRC некоторые браузеры могут игнорировать настройки управления кэшем в некоторых контекстах. «Безопасный» обходной путь для этого - всегда получать страницу (даже кусок AJAX) с новой переменной строки запроса (например, время.)

0 голосов
/ 02 октября 2008

Если бы вы использовали сервлет, то я считаю, что то, что вы разместили в этом вопросе, было бы правильным подходом. Я не знаю ни одного способа сделать это в JSP.

...