Session 在JSF1.2项目中增加特定页面中的会话时间

Session 在JSF1.2项目中增加特定页面中的会话时间,session,jsf,jsf-1.2,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</para

我们的项目中有一个特定的部分,有时需要很长时间才能完成数据库操作。如果我们使用只能使用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>
这是每个豆子里都有的。我有一些问题:

  • 增加此值将增加特定页面的会话时间,还是以my web.xml中的值为准
  • 是否有其他方法来处理某些页面的特定会话超时,或者这会影响整个项目

  • 会话超时的web.xml是所有web会话的正确位置。如果存在web会话请求的数据库操作大约需要20分钟的情况,我建议您重新考虑该过程的实现。 此外,您可以尝试在SessionScoped Bean中使用“setMaxInactiveInterval()…”增加特定HttpSession的超时值。 当这个过程花费那么长的时间时,至少应该将它与任何web会话分离

  • 以web.xml中的值为准
  • 抱歉,没有办法影响特定页面的会话超时
  • 在我看来,一个更好的解决方案(不涉及扩展会话)是使用异步编程。看看这条线:


    你找错地方了。会话超时用于会话不活动,而不是请求。需要20分钟的会话操作不会导致任何类型的会话超时。我建议你看看为什么需要这么长的时间,并修复它,而不是使用毫无意义的绷带。将发生的不是会话超时,而是用户将离开。无论该注释来自何处(ProjectLombok?),它与web会话超时完全无关。您是否在询问如何为页面实现会话保持活动策略(如:只要该页面打开,会话就不会过期)?
    @Synchronized(timeout = 300000)