0

編集:私は質問を再定式化しました

私はandを使用SpringしてGWTEventServiceいます(これは基本的にと同じCometです)。より単純なHttpSessionListenerを作成すると、sessionCreated()が2回呼び出され、その間にsessionDestroyed()が呼び出されないことがわかります。何故ですか?1人のユーザーに対して2つのセッションがありますか?2つ目HttpSessionは、セッションBean()で初めて情報を設定したときに作成されSpringます。

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
 
public class SomeSessionListener implements HttpSessionListener {
 
  @Override
  public void sessionCreated(HttpSessionEvent se) {
    log.info("New session was created, source= " + se.getSource());
  }
 
  @Override
  public void sessionDestroyed(HttpSessionEvent se) {
    log.info("A session was closed");
  } 
}

出力例:

Application has started
New session was created, source= org.mortbay.jetty.servlet.HashSessionManager$Session:21u4n0rnyp4i@24662444
New session was created, source= org.mortbay.jetty.servlet.HashSessionManager$Session:n9wm8tsj1ote@28925695
Application interrupted by client
4

1 に答える 1

0

別の質問に対する回答が定式化されていることがわかりました: Spring security concurrent-session and HttpSessionListener problem

要するに 、セッション Bean に対して destroy メソッドを使用する方がよいということです。

于 2013-03-02T16:54:22.777 に答える