我想知道是否有一种“标准”方式来处理基于 GAE 的 Web 应用程序中的持久 HTTP 会话。让我解释一下我的问题。
如果我只使用 this.getThreadLocalRequest().getSession() 来获取会话,一旦用户关闭浏览器,该会话就会自动失效。
如果我使用 Cookies(因此会话将持续到 cookie 过期或用户删除他的 cookie),我需要有一种机制来验证存储在 cookie 中的 sessionID 实际上属于有效会话。我曾考虑将 sessionID 的键值对 HttpSession 存储在 concurrentHashMap 中,但现在我遇到了这个 hashmap 仅可用于当前实例的问题,因此我可能会遇到一致性问题。
我想到的最后一个解决方案是跟踪数据存储中的会话,但每次收到请求时都必须查询数据存储,这对我来说似乎很荒谬。
也许我完全脱离了轨道,并且有一种非常简单的方法可以实现我想要做的事情:在浏览器重启和多个 gae 实例中持续存在的 Http 会话。
谢谢!罗德里戈。