9

为了在 JSF 中处理 viewExpiredException,我编写了代码

<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 即使会话过期也没有被清除。有没有办法解决这个问题?

4

1 回答 1

7

登录页面可能是从浏览器缓存中请求的。通过创建一个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.
于 2010-01-22T00:35:41.253 回答