viewExpiredException JSF

Для обработки viewExpiredException в JSF я написал

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/error.html</location>
</error-page>

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

в web.xml,

В error.html Я перенаправлен на исходную страницу входа. Но проблема в том, что bean-объект сессионной области не был очищен, даже если сеанс истек. Есть ли способ решить это?

1 ответ

Решение

Скорее всего, страница входа в систему запрошена из кэша браузера. Отключите его, создав Filter который привязан к FacesServlet и имеет в основном следующие строки в doFilter() метод, так что вам не нужно повторять его на всех страницах, которые вы хотите предотвратить кэширование.

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.
Другие вопросы по тегам