会话已过期

时间:2013-06-15 17:45:21

标签: java web-applications session-timeout

欢迎。我有一个登录过滤器,用于检查当前用户会话是否未过期。 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页面。我有几个没有文件夹保护的网站,但这些网页上的会话也会过期。为什么呢?

1 个答案:

答案 0 :(得分:1)

web.xml中与会话有效期有关的唯一事情是

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

将会话超时设置为一分钟。你是否有Filter设置并不重要。或者,用户是否已登录该站点。

session是客户端的全局,即使客户端尚未明确登录(使用用户名和密码),也会创建。{1}}只是在登录后你在已经创建的session对象中设置了一些对客户端进行身份验证的对象。

因此,当session到期时,它会全局到期,即Web应用程序的所有页面;它们是否在/protected内并不重要。