Session 使用服务更改会话时间

Session 使用服务更改会话时间,session,tomcat,Session,Tomcat,我想创建一个以分钟为单位的服务/servlet,并更改会话超时值,这意味着我想更改 <session-config> <session-timeout>1</session-timeout> </session-config> 仅更改当前seision,而不是所有会话。如果不以某种方式扩展并依赖Tomcat自己的类,我不知道一旦设置了默认的,如何以编程方式更改 另一种方法可能是单独存储可变会话超时值(可能在数据库中),您的服务可能负责更新/

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

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

仅更改当前seision,而不是所有会话。

如果不以某种方式扩展并依赖Tomcat自己的类,我不知道一旦设置了默认的
,如何以编程方式更改

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

不是你想要的确切答案,而是一种可能的实现方法

public class SessionTimeoutModifier implements HttpSessionListener {

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

    ...