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