Spring Security を使用している場合、この機能はすぐに使用できます。さもないと:
java.util.Map
(ConcurrentMap が推奨されるため、同時に操作しても破損しない) を作成し、アプリケーション スコープ (ServletContext) に格納します。
次に、ログイン時に各ユーザーとそのセッションへの参照をマップに保存し、ユーザーが再度ログインした場合は、以前のセッション オブジェクトを取得して無効にします。
のインスタンスを実装しjavax.servlet.http.HttpSessionListener
、void sessionDestroyed(javax.servlet.http.HttpSessionEvent httpSessionEvent);
メソッドで、指定されたセッションをマップから削除します。(このリスナーは、コンテナーによって自動的に行われるか、プログラムによって行われるかに関係なく、セッションの無効化で呼び出されます)。このリスナーを登録するだけでweb.xml
、すべてが完了します。
ps アプリケーションを Web コンテナーのクラスターにデプロイする場合は、多少難しいことはわかっていますが、サーバーが 1 つしかない場合は問題ありません。psセッション情報をDBに保存することはお勧めしません。