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

ブラウザーでは、ユーザーがアプリケーションを離れたかどうかを検出するために HTTP セッション タイムアウトが使用されます。」
"RAP ランチャーを使用する場合、デフォルトでは HTTP セッションは期限切れにならないことに注意してください。タイムアウト値を変更するには、[メイン] タブの設定を調整します。"

あなたが参照しているリンクは、RAP 2.0 について書いています。最新バージョン 2.3 に更新する必要があるかもしれません。

次のようにセッション タイムアウト値を減らすことができます。

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

更新時にセッションをクリアするには、次のことができます。

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