如何清除UISession?

时间:2014-12-10 03:49:36

标签: eclipse eclipse-rap

从这link我看到了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(Memory Analyzer Tool)报告,我看到调用UISessionImpl的内容与浏览器刷新时间一样多。这意味着创建了新的UISession,但旧的会话仍在那里。

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

修改

我的代码:

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

1 个答案:

答案 0 :(得分:0)

看看这个链接: https://wiki.eclipse.org/RAP/FAQ#How_do_I_get_notified_when_the_browser_window.2Ftab_is_closed.3F

"在最近的浏览器中,当客户端的浏览器窗口/选项卡关闭时,UI会话被自动销毁。对于旧版浏览器,HTTP会话超时用于检测用户是否已离开应用程序。"
"请注意,使用RAP启动程序时,默认情况下,HTTP会话永不过期。要更改超时值,请调整" Main"的设置。 。标签#&34;

您参考的关于RAP 2.0的链接,可能您需要更新到最新版本2.3。

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

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

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

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