3

Tomcat の catlina API を使用してセッション管理にアクセスするにはどうすればよいですか。私のコードから他のユーザーのセッションを無効にする必要があります。

4

2 に答える 2

2

明らかな理由から、私は個人的に、Tomcatパッケージにバインドせずjavax.servlet、できるだけAPIを使用しないことを好みます。あなたのタスクは、セッションリスナーを作成し、すべてのセッションを次のWeakHashMapように保持することで達成できます。

<!-- your webapp's web.xml -->
<listener>
  <listener-class>path.to.SessionListener</listener-class>
</listener>

class SessionListener implements HttpSessionListener {
   private static final Map<String, HttpSession> sessions = Collections.synchronizedMap(new WeakHashMap<String, HttpSession>());

   public void sessionCreated(HttpSessionEvent event) {
      sessions.put(event.getSession().getId(), event.getSession());
   }

   public void sessionDestroyed(HttpSessionEvent event) {
      sessions.remove(event.getSession().getId());
   }
}

残りは、すべてのセッションを反復処理して無効にする別のメソッドを追加するのと同じくらい簡単です。

于 2012-09-14T10:31:52.507 に答える
0

のような特定のユーザーに対して session.invalidate メソッドを使用します。

session.set 属性でユーザーを設定している場合は、アクセサ メソッドから特定のメソッドを取得します。

アクセスには pojo Bean を使用します。

セッション チェックを無効にする前に、true または有効である必要があります。

于 2012-09-14T05:23:01.987 に答える