【问题标题】:Change session time with service使用服务更改会话时间
【发布时间】:2013-12-20 23:38:37
【问题描述】:

我想创建一个以分钟为单位的服务/servlet,并更改会话超时值,这意味着我想更改

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

我知道

request.getSession(true).setMaxInactiveInterval(seconds);

只改变当前的视野,而不是所有的会话。

【问题讨论】:

    标签: session tomcat


    【解决方案1】:

    如果不以某种方式扩展并依赖于 Tomcat 自己的类,我不知道一旦设置了默认 &lt;session-timeout&gt;,您如何以编程方式更改它。

    另一种方法可能是单独存储可变会话超时值(可能在数据库中) - 您的服务可能负责更新/检索。然后,您可以使用HttpSessionListener 根据此值修改新创建会话的超时时间。

    例如:

    public class SessionTimeoutModifier implements HttpSessionListener {
    
        public void sessionCreated(HttpSessionEvent event) {
            int timeout = sessionService.getSessionTimeout(); // Gets your value
            event.getSession().setMaxInactiveInterval(timeout); // Override default
        }
    
        ...
    

    然后可以开发一个 Web 前端 (servlet),它可以通过 sessionService.setSessionTimeout(value) 改变您的会话超时。

    不是您正在寻找的确切答案,而是实现它的一种可能方法。

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 2016-05-12
      • 2011-01-20
      • 2014-04-15
      • 2013-12-12
      • 2012-11-04
      相关资源
      最近更新 更多