从这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);
}
});
答案 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);