JPAでStruts 2アプリケーションを構築しています。ユーザーはアプリケーションに複数回ログインできます。私が欲しい
- ユーザーは自分のすべてのセッションをグリッドで表示し、おそらく現在のセッションを強調表示できます。オプションで、ユーザーはセッションを選択して終了できます。
- 管理者は、ログインしているすべてのユーザーを表示できる必要があり、ログインしている各ユーザーのすべてのセッションを表示することもでき、オプションで任意のセッションを終了することもできます。
ありがとう
JPAでStruts 2アプリケーションを構築しています。ユーザーはアプリケーションに複数回ログインできます。私が欲しい
ありがとう
私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 sessions
IMO これで他の問題を簡単に把握できます。