欢迎。我有一个登录过滤器,用于检查当前用户会话是否未过期。 faces-config:
<filter>
<filter-name>filter</filter-name>
<filter-class>filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>
1
</session-timeout>
</session-config>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/login.xhtml</location>
</error-page>
过滤器仅适用于受保护文件夹中的页面。会话到期后,请转到login.xhtml页面。我有几个没有文件夹保护的网站,但这些网页上的会话也会过期。为什么呢?
答案 0 :(得分:1)
web.xml
中与会话有效期有关的唯一事情是
<session-config>
<session-timeout>
1
</session-timeout>
</session-config>
将会话超时设置为一分钟。你是否有Filter
设置并不重要。或者,用户是否已登录该站点。
session
是客户端的全局,即使客户端尚未明确登录(使用用户名和密码),也会创建。{1}}只是在登录后你在已经创建的session
对象中设置了一些对客户端进行身份验证的对象。
因此,当session
到期时,它会全局到期,即Web应用程序的所有页面;它们是否在/protected
内并不重要。