ホームページ >Java >&#&ベース >Java がセッション タイムアウト (有効期限) を設定する時間について詳しく説明します。

Java がセッション タイムアウト (有効期限) を設定する時間について詳しく説明します。

coldplay.xixi
coldplay.xixi転載
2021-02-19 17:37:284156ブラウズ

Java がセッション タイムアウト (有効期限) を設定する時間について詳しく説明します。

無料学習の推奨事項: java 基本チュートリアル

一般システムにログインした後、現在のセッションの無効化が行われます。ユーザーが長時間サーバーと対話しない場合に自動的にログアウトしてセッションを破棄する時間を設定する必要があります。
具体的な設定方法は 3 つあります。
1. Web コンテナーで設定します (Tomcat を次のようにします)。例)
tomcat -7.0\conf\web.xml では、tomcat7.0 のデフォルト設定は次のとおりです。

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

tomcat のデフォルトのセッション タイムアウトは 30 分で、必要に応じて変更できます。負の数または 0 は、セッションの有効期限に制限がないことを意味します。

このセッションで設定された時間は、クライアントではなくサーバーに基づいて計算されることに注意してください。したがって、プログラムをデバッグしている場合は、クライアントではなく、テスト用にサーバー側の時間を変更する必要があります

2。プロジェクトの web.xml で

<!--时间单位为分钟-->
<session-config>
    <session-timeout>15</session-timeout>
</session-config>

を設定します。ここでの 15 は、次のことを意味します。

3.

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

Java コードを使用して 3 つの優先レベルを設定します: 1 < 2 < 3

一般的なシステムでは、セッションの有効期限が切れた後に優先度を設定する必要があります。いくつかの操作を実行します:
1. ユーザー数を制御します。セッションが失敗すると、システム内のユーザー数が 1 つ減ります。セッション内のユーザー数を制御します。
2. ユーザーの複数回ログインを制御する セッションが有効な場合、同じユーザーがログインすると、ログイン済みであることを示すプロンプトが表示されます。有効期限が切れた場合は、別のプロンプトを使用して直接ログインできます。
では、セッションの有効期限が切れた後に一連の操作を実行するにはどうすればよいでしょうか?
ここではリスナーを使用する必要があります。つまり、さまざまな理由でセッションが失敗したときに、リスナーはリスナーをリッスンして、リスナー内に定義されたプログラムを実行できます。
リスナー クラスは次のとおりです: HttpSessionListener クラスには 2 つありますsessionCreated メソッドと sessionDestroyed メソッドです。
このクラスを継承して、それぞれ実装できます。
sessionCreated は、セッションの作成時に実行されるメソッドを指します。
sessionDestroyed は、セッションが失敗したときに実行されるメソッドを指します。
例:

public class OnlineUserListener implements HttpSessionListener{
    public void sessionCreated(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户
    }
    
    public void sessionDestroyed(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        synchronized(this){
            SummerConstant.USERNum--;//用户数减-
            SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map
        }
    }
}

その後、web.xmlでリスナーを宣言するだけで済みます


    com.demo.OnlineUserListener

関連学習の推奨事項: Java Base

以上がJava がセッション タイムアウト (有効期限) を設定する時間について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。