【发布时间】:2011-04-27 14:37:50
【问题描述】:
我们有一个部署在 Tomcat 上的 GWT 应用程序。在服务器上,我们设置了 1 分钟的超时时间
httpSession.setMaxInactiveInterval(1*60)
在客户端,我们也设置了一些超时值为 1 分钟的 cookie。 1 分钟后,我们注意到客户端 cookie 被删除;但是 servlet 容器(jetty/tomcat)设置的 JSESSIONID 仍然存在于客户端中。
在会话超时时,我们的用户希望我们抛出一个警报/消息对话框来提醒他/她会话已超时并且用户应该再次登录到服务器。看来我们需要一个客户端的超时回调——有没有我们可以调用的 API 来设置会话超时的回调?
到目前为止,如果用户使用过期会话访问服务器,我们会告诉他会话已过期;但是,客户希望我们通过提醒用户会话已超时来防止“丢失更改”(而不是浪费时间编辑任何客户端数据,然后提交以发现会话已超时 - 丢失更改!)
还有什么其他的处理方式?
谢谢,
【问题讨论】:
-
我刚开始使用 GWT,这个问题让我有点困惑。您正在使用会话来存储用户信息?您的目标不是使其无状态并在每个请求中传递用户信息吗? GWT 的优势之一不是您不受限制于超时没有意义的“会话”想法吗?
标签: java session tomcat gwt session-timeout