使用服务更改会话时间

时间:2013-12-04 13:02:49

标签: session tomcat

我想创建一个服务/ servlet,它可以在几分钟内获得时间并更改会话超时值,这意味着我想要更改

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

我知道

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

仅更改当前的视频,而不是所有会话。

1 个答案:

答案 0 :(得分:0)

如果没有以某种方式扩展并依赖于Tomcat自己的类,我不知道如何在设置后以编程方式更改默认<session-timeout>

另一种方法可能是单独存储可变会话超时值(可能在数据库中) - 您的服务可能负责更新/检索。然后,您可以使用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)改变你的会话超时。

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