为同一个Webapp配置不同的超时值

时间:2012-10-26 15:31:06

标签: tomcat session-timeout

我有一个带有2个网址模式的(grails)网络应用程序:

/web/**

/rest-api/**

第一个用于普通的Web用户访问,应使用超过30分钟的http会话。 第二个由REST接口使用,并且根本不包含任何会话(超时= 0)。

是否可以设置tomcat,在同一个webapp中支持这两种情况,或者我应该拆分它(后者不好笑)?

TIA

1 个答案:

答案 0 :(得分:0)

可以通过编程方式覆盖会话超时。在java servlet中,它是这样完成的:

request.getSession().setMaxInactiveInterval(30);

因此,您可以使用其中一个服务的默认web.xml值,并以编程方式为另一个服务设置。

另请注意,除非某些代码正在访问它(通常通过调用request.getSession()),否则Tomcat不会创建HttpSession。因此,没有会话的最佳方式是根本不访问它。但是,如果您正在使用某些第三方库来访问您背后的会话,则很难实现。