Google App Engine 会话

7
  1. Java应用引擎是什么?默认的会话超时时间是多久?
  2. 如果我们将会话超时时间设置得非常长,对此会有任何不良影响吗?因为Google应用引擎默认只将会话存储在数据存储器中(就像Facebook一样,每次访问页面时,会话仍然永久存在)。
2个回答

12
  1. 默认会话超时时间设置为30分钟。(您可以通过调用getMaxInactiveInterval方法来验证)
  2. 基于您提供的相对有限的应用信息,我没有发现任何影响。
    使用 setMaxInactiveInterval(-1) 表示会话永不超时。 请注意,您还需要覆盖 JSESSIONID cookie 的 MaxAge 以防止在浏览器关闭时丢失会话。

这会增加AppEngine应用程序的内存/资源使用吗? - cometta
1
是的,因为你会在 _ah_SESSION 表上产生许多无用的活动会话。 - systempuntoout
2
似乎GAE不再遵守req.getSession().setMaxInactiveInterval(x)。默认情况下,它将会话过期值设置为从现在开始的一天,并存储在memcache / datastore中。但是我发现了一种改变这种行为的方法,可以通过在web.xml中添加以下内容来实现:<session-config> <session-timeout>20160</session-timeout> </session-config> - Patrick

1
我刚在我的GAE网站上进行了测试,默认超时时间为getMaxInactiveInterval()=86400秒=24小时=1天。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接