增加JSF 1.2项目中特定页面的会话时间

时间:2015-09-02 12:19:14

标签: session jsf jsf-1.2

我们项目中有一个特定部分,有时可能需要很长时间才能完成数据库操作。如果我们使用只能使用VPN访问的数据库,情况会更糟。

我知道您可以通过以下方式增加整个会话时间:

<context-param>
        <description>Tempo limite em minutos da sessão do usuário</description>
        <param-name>timeout_sessao_web</param-name>
        <param-value>20</param-value>

</context-param>

我们在web.xml文件中有这个参数,持续20分钟。我可以很容易地改变这个值,但我被告知不要。

我知道有这个:

@Synchronized(timeout = 300000)

那就是每个豆子。我有一些问题:

  1. 增加此值会增加特定页面的会话时间,还是以我的web.xml中的值为准?
  2. 是否有其他方法可以处理某些页面的特定会话超时,或者是影响整个项目的内容?

2 个答案:

答案 0 :(得分:0)

会话超时的web.xml是所有Web会话的正确位置。如果存在Web会话请求的数据库操作大约需要20分钟的情况,我建议您重新考虑该过程的实现。 此外,您可以尝试使用SessionScoped Bean中的&#34; setMaxInactiveInterval()...&#34; 来增加特定HttpSession的超时值。 至少你应该在花费很长时间的时候将这个过程从任何网络会话中分离出来。

答案 1 :(得分:0)

  1. 以web.xml中的值为准。
  2. AFAIK,无法影响特定页面的会话超时。
  3. 我的拙见(不涉及扩展会话)的更好的解决方案是使用异步编程。看一下这个帖子:

    Asynchronous Servlets vs. synchronous Servlets