Я разрабатываю Java веб-приложение EE с помощью Struts. Проблема с кэшированием Internet Explorer. Если пользователь выходит из системы, он может получить доступ к некоторым страницам, потому что они кэшируются, и никакой запрос не выполнен. Если я поразил обновление, оно хорошо работает. Также, если пользователь перейдет к странице входа в систему снова, то она не перенаправит его, потому что та страница также кэшируется.
Два решения прибывают по моему мнению:
<meta>
теги на уровне каждой страницы.Какой я должен сделать?
Вместо этого установите следующие заголовки на 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">
Также см. этот ответ. Не забудьте очистить кэш браузера перед тестированием ;)
Я обнаружил, что следующее работает хорошо:
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 и кешированию, если вы хотите понять больше.
При этом, в зависимости от проблемы, которую вы видите, это может быть проблема с историей браузера. См. здесь для получения дополнительной информации об этом.
Измените заголовки без кеширования и т. Д. Это обычный способ.