【问题标题】:Configuring different timeout values for the same webapp为同一个 webapp 配置不同的超时值
【发布时间】:2012-10-29 00:12:23
【问题描述】:

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

/web/**

/rest-api/**

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

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

TIA

【问题讨论】:

    标签: tomcat session-timeout


    【解决方案1】:

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

    request.getSession().setMaxInactiveInterval(30);
    

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

    还请注意,Tomcat 不会创建 HttpSession,除非某些代码正在访问它(通常通过调用 request.getSession())。因此,没有会话的最好方法是根本不访问它。但是,如果您使用的是某些 3rd 方库,这些库在您背后访问会话,这可能很难实现。

    【讨论】:

    • 因此,如果 grails 的调度程序没有调用 httpSession 上的任何方法,则不应创建后面的方法。问题是真的是这样吗? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2014-03-21
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多