我想创建一个以分钟为单位的时间的服务/ servlet,并更改会话超时值,这意味着我想更改
<session-config> <session-timeout>1</session-timeout> </session-config>
我知道
request.getSession(true).setMaxInactiveInterval(seconds);
仅更改当前的流行,而不更改所有会话。
如果不进行某种扩展并依赖于Tomcat自己的类,<session-timeout>一旦设置了默认值,我将不知道如何以编程方式更改默认值。
<session-timeout>
一种替代方法是单独存储可变的会话超时值(可能在数据库中)-您的服务可能负责更新/检索。然后,您可以HttpSessionListener根据此值使用a 来修改新创建的会话的超时。
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)。
sessionService.setSessionTimeout(value)
不是您要寻找的确切答案,而是实现它的一种可能方法。