如何设置每个路径的tomcat会话超时?

时间:2017-08-22 13:23:06

标签: java tomcat8

我知道如何更改session-timeout中的全局tomcat8

<session-config>
  <session-timeout>30</session-timeout>
</session-config>

问题:如何更改超时每个应用程序路径

就像我想将多个应用程序部署到:

/myapp/v1
/myapp/v2
/myapp/v3
/someapp

现在我希望所有/myapp/*路径都有不同的超时。但也只能在testserver上。在生产服务器上,超时应保持为默认值tomcat 30mins。

这就是为什么我不想在应用程序本身添加web.xml的原因,因为这会在部署新的war时影响生产部署。

这可能吗?

如果重要:我使用spring-boot

1 个答案:

答案 0 :(得分:0)

你最好的选择是在sessionhandler类中处理这个问题,类似于:

public class AppHttpSessionListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent event) {
        event.getSession().setMaxInactiveInterval(15 * 60); 
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
        // session destroyed
    }
}

参考:http://www.groupkt.com/post/7ee95bbd/session-timeout-handling-in-java.htm

我可能错了,但我不确定你能做到这一点!