Eclipse 如何清除会话?
由此我看到,Eclipse 如何清除会话?,eclipse,eclipse-rap,Eclipse,Eclipse Rap,由此我看到,对于RAP UI的每个实例,都会创建一个单独的UI会话。这意味着当用户访问入口点时,这是一个新的UI会话。当用户在浏览器中重新加载页面时,这也是一个新的界面。 在我的应用程序中,当浏览器刷新时(通常通过点击F5或关闭浏览器并再次打开),从MAT(内存分析器工具)报告中,我看到一个叫做UISessionImpl的东西在浏览器刷新时被创建。这意味着创建了新的UISession,但旧会话仍然存在 所以我的问题是“如何在每次浏览器刷新时清除会话?” 编辑 我的代码: RWT.getUISes
对于RAP UI的每个实例,都会创建一个单独的UI会话。这意味着当用户访问入口点时,这是一个新的UI会话。当用户在浏览器中重新加载页面时,这也是一个新的界面。
在我的应用程序中,当浏览器刷新时(通常通过点击F5或关闭浏览器并再次打开),从MAT(内存分析器工具)报告中,我看到一个叫做UISessionImpl的东西在浏览器刷新时被创建。这意味着创建了新的UISession,但旧会话仍然存在
所以我的问题是“如何在每次浏览器刷新时清除会话?”
编辑
我的代码:
RWT.getUISession(myDisplay).exec(new Runnable() {
@Override
public void run() {
RWT.getRequest().getSession().setMaxInactiveInterval(1);
}
});
请查看此链接:
“在最新的浏览器中,当客户端的浏览器窗口/选项卡关闭时,UI会话将自动销毁。对于较旧的浏览器,HTTP会话超时用于检测用户是否已离开应用程序。”
请注意,使用RAP启动器时,默认情况下HTTP会话永不过期。要更改超时值,请调整“主”选项卡上的设置 你提到的链接写的是RAP2.0,也许你需要更新到最新版本2.3 您可以按如下方式减少会话超时值:
RWT.getRequest().getSession().setMaxInactiveInterval(...);
要在刷新时清除会话,您可以执行以下操作:
RWT.getRequest().getSession().setMaxInactiveInterval(0);
你的答案是关于HTTPSession的,但我的问题是UISession。据我所知,UISession连接到HTTPSession,销毁HTTPSession会销毁UISession。我试过了,但没用。会话仍然有效。添加了我的代码。您在哪里执行此代码?它应该处于初始化点。您是否从eclipse(使用RAP启动器)启动应用程序?请注意,在使用RAP启动器时,默认情况下HTTP会话永不过期。要更改超时值,请调整“Main”选项卡上的设置。此代码从ApplicationEntryPoint类中的createUI()方法调用。