viewExpiredException JSF

use*_*194 9 java session jsf viewexpiredexception

为了处理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>
Run Code Online (Sandbox Code Playgroud)

web.xml.

error.html我已重定向到原始登录页面.但问题是会话范围bean即使会话过期也没有被清除.有什么方法可以解决这个问题吗?

Bal*_*usC 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.
Run Code Online (Sandbox Code Playgroud)