1

从这个链接我看到了For every instance of a RAP UI, a separate UISession is created. That means that when a user accesses an entry point, that’s a new UISession. When the user reloads the page in the browser, that’s also a new UISession.

在我的应用程序中,当浏览器刷新时(通常通过按 F5 或关闭浏览器并再次打开)并从 MAT(内存分析器工具)报告中,我看到创建了一些调用 UISessionImpl 的内容与刷新浏览器的时间一样多。这意味着创建了新的 UISession 但旧的会话仍然存在。

所以我的问题是“每次浏览器刷新时如何清除会话?”。

编辑

我的代码:

RWT.getUISession(myDisplay).exec(new Runnable() {
  @Override
  public void run() {
    RWT.getRequest().getSession().setMaxInactiveInterval(1);
  }
});
4

1 回答 1

0

看看这个链接: https

://wiki.eclipse.org/RAP/FAQ#How_do_I_get_notified_when_the_browser_window.2Ftab_is_closed.3F “在最近的浏览器中,当客户端的浏览器窗口/选项卡关闭时,UI 会话会自动销毁。对于较旧的在浏览器中,HTTP 会话超时用于检测用户是否离开了应用程序。”
“请注意,使用 RAP 启动器时,默认情况下 HTTP 会话永不过期。要更改超时值,请调整“主”选项卡上的设置。”

您参考的链接写的是 RAP 2.0,也许您需要更新到最新版本 2.3。

您可以像这样减少会话超时值:

RWT.getRequest().getSession().setMaxInactiveInterval(...);

要在刷新时清除会话,也许你可以这样做:

RWT.getRequest().getSession().setMaxInactiveInterval(0);
于 2014-12-10T07:26:35.523 回答