【发布时间】:2012-10-29 00:12:23
【问题描述】:
我有一个带有 2 个 url 模式的(grails)网络应用程序:
/web/**
/rest-api/**
第一个用于普通网络用户访问,应该使用超时 30 分钟的 http-session。 第二个由 REST 接口使用,并且根本不包含会话(超时=0)。
是否可以设置 tomcat,在同一个 webapp 中支持这两种情况,或者我应该拆分它(后者不好笑)?
TIA
【问题讨论】:
我有一个带有 2 个 url 模式的(grails)网络应用程序:
/web/**
/rest-api/**
第一个用于普通网络用户访问,应该使用超时 30 分钟的 http-session。 第二个由 REST 接口使用,并且根本不包含会话(超时=0)。
是否可以设置 tomcat,在同一个 webapp 中支持这两种情况,或者我应该拆分它(后者不好笑)?
TIA
【问题讨论】:
可以以编程方式覆盖会话超时。在 java servlet 中是这样完成的:
request.getSession().setMaxInactiveInterval(30);
因此,您可以为其中一项服务使用默认的 web.xml 值,并以编程方式为另一项服务设置它。
还请注意,Tomcat 不会创建 HttpSession,除非某些代码正在访问它(通常通过调用 request.getSession())。因此,没有会话的最好方法是根本不访问它。但是,如果您使用的是某些 3rd 方库,这些库在您背后访问会话,这可能很难实现。
【讨论】: