3

JPAでStruts 2アプリケーションを構築しています。ユーザーはアプリケーションに複数回ログインできます。私が欲しい

  1. ユーザーは自分のすべてのセッションをグリッドで表示し、おそらく現在のセッションを強調表示できます。オプションで、ユーザーはセッションを選択して終了できます。
  2. 管理者は、ログインしているすべてのユーザーを表示できる必要があり、ログインしている各ユーザーのすべてのセッションを表示することもでき、オプションで任意のセッションを終了することもできます。

ありがとう

4

1 に答える 1

6

HttpSessionBindingListenerはあなたが探しているものだと思います。完全なコードを書き留めることはしません。それを行う方法を提案するだけです。

User class (DTO)すべての active を格納する場所に静的フィールド (マップ) を追加できますsessions of users。:

例えばprivate static Map<User, HttpSession> usersSessions= new HashMap<User, HttpSession>();

次に、実装を行いUser classますHttpSessionBindingListener。このようにして、valueBound(HttpSessionBindingEvent event)実際に作成されたものを取得して次のように配置できるメソッドをsession指定できますusersSessions

usersSessions.put(this, event.getSession());

valueUnbound(HttpSessionBindingEvent event)メソッドでは、次のようになります。

usersSessions.remove(this);users session後に削除しlogoutます。

このようにして、どのユーザーに属しているかMapの情報もすべて取得できます。active sessionsIMO これで他の問題を簡単に把握できます。

于 2012-04-12T18:14:52.213 に答える