Как предотвратить кеширование результата сервлетов? - PullRequest
4 голосов
/ 28 февраля 2011

Как я могу остановить кэширование страниц в браузере с помощью сервлетов?

Я хочу, чтобы сессия заканчивалась, если я нажимаю кнопку возврата браузера, когда я вошел в систему.

Ответы [ 2 ]

10 голосов
/ 28 февраля 2011

Чтобы навсегда отключить кэш.

  // Set to expire far in the past.
  response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");

  // Set standard HTTP/1.1 no-cache headers.
  response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");

  // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
  response.addHeader("Cache-Control", "post-check=0, pre-check=0");

  // Set standard HTTP/1.0 no-cache header.
  response.setHeader("Pragma", "no-cache");

Очистка клиентского кэша не приведет к немедленному истечению сеанса, но удалит cookie сеанса в браузере.Для того, чтобы сеанс немедленно истек, вам нужно явно указать на стороне сервера jsp или servlet.

// use session invalidate
session.invalidate();
2 голосов
/ 28 февраля 2011

Если для запроса вы получите объект HttpServletResponse (реализация), вы можете отправлять заголовки HTTP, которые будут побуждать браузеры не кэшировать отправляемый вами контент.документация для HttpServletResponse и HttpServletResponseWrapper .Если вам нужно прочитать заголовки управления кэшем в HTTP, проверьте это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...