Предотвратите кэширование IE

Я разрабатываю Java веб-приложение EE с помощью Struts. Проблема с кэшированием Internet Explorer. Если пользователь выходит из системы, он может получить доступ к некоторым страницам, потому что они кэшируются, и никакой запрос не выполнен. Если я поразил обновление, оно хорошо работает. Также, если пользователь перейдет к странице входа в систему снова, то она не перенаправит его, потому что та страница также кэшируется.

Два решения прибывают по моему мнению:

  1. Запись Перехватчика (фильтр сервлета как) для добавления к заголовку ответа, без кэшей и т.д.
  2. Или или помещенный <meta> теги на уровне каждой страницы.

Какой я должен сделать?

17
задан BalusC 17 May 2010 в 17:44
поделиться

3 ответа

Вместо этого установите следующие заголовки на HttpServletResponse рассматриваемой страницы, чтобы вам не нужно было копировать его поверх всех страниц вручную:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.

Это эквивалентно установке следующих мета-заголовков на страницах вручную:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

Также см. этот ответ. Не забудьте очистить кэш браузера перед тестированием ;)

29
ответ дан 30 November 2019 в 12:00
поделиться

Я обнаружил, что следующее работает хорошо:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform, pre-check=0, post-check=0, private");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);

Судя по тегам в этом вопросе, похоже, что вы используете Struts. Struts 1.x позволяет сделать это через конфигурацию в struts-config.xml, установив nocache = "true" в элементе контроллера :

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" nocache="true" />

Кэширование Марка Ноттингема Учебник - лучший ресурс, который я видел в Интернете по HTTP и кешированию, если вы хотите понять больше.

При этом, в зависимости от проблемы, которую вы видите, это может быть проблема с историей браузера. См. здесь для получения дополнительной информации об этом.

5
ответ дан 30 November 2019 в 12:00
поделиться

Измените заголовки без кеширования и т. Д. Это обычный способ.

-1
ответ дан 30 November 2019 в 12:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: