我想创建一个服务/ servlet,它可以在几分钟内获得时间并更改会话超时值,这意味着我想要更改
<session-config>
<session-timeout>1</session-timeout>
</session-config>
我知道
request.getSession(true).setMaxInactiveInterval(seconds);
仅更改当前的视频,而不是所有会话。
答案 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)
改变你的会话超时。
不是您正在寻找的确切答案,而是实现目标的一种可能方式。