2016-12-20 15 views
0

私はデータベースにjava上でwebappを持っています。ユーザーがログインすると、データベースのフィールドステータスが承認済みに変更されます。誰かが同じアカウントでログインしようとすると、誰かが既にこのアカウントを使用してログインしていると言われます。そのため、セッションが閉じられると(ユーザーがブラウザを閉じる)、ステータスフィールドを「not_authorized」に変更する必要があります。私はServletContextListenerについて知っていますが、アプリケーションの初期化と破棄に使用されます。セッションには同じものが必要です。メソッドSessionDestroyedを持つSession listenerのようなSmth。これを行う方法はありますか? TYたくさんセッションが終了したときを知る方法

+0

ため、実際にログアウトを意味する「セッションが閉じた」のか? –

+0

そうですね、そんな感じです。 –

+0

これは何の目的ですか?ユーザーが複数のデバイスに一度にログインしているときにアプリケーションが何らかの形で中断しますか?もしそうなら、代わりにそのブレークを修正したいかもしれません。 – 4castle

答えて

0

あなたの質問に答えるには、ブラウザを閉じても、セッションがアクティブになります。セッションがタイムアウトすると、セッションは無効になります。誰かがブラウザを閉じたときに通知されることはありません。 Webハンドラを使用してみることができます。ソケットハンドラを閉じると、ロジックを書き込んでdbを更新できます。クラスSessionListenerを拡張

試みは、より多くの情報リンクをたどるhttp://www.groupkt.com/post/7ee95bbd/session-timeout-handling-in-java.htm

<webapp> 
<listeners> 
    <listener-class> com.groupkt.example.AppHttpSessionListener</listener-class> 
</listeners> 
</webapp> 
+0

私はブラウザを閉じることが重要ではないことを意味します。セッションの無効化後にそのフィールドを変更する必要があります。 –