セッションを破壊する方法は何ですか?

セッションは、私たちがなくてはならないバックエンドテクノロジーとして、主にHttpプロトコルのステートレス特性を解決するように見え、ユーザー状態のストレージの問題を解決するために使用され、多くの場合、ストレージの時間の問題を伴います。破壊の方法を見てみましょう。


デフォルト時間の破棄は、
自身の設定された有効期限
が切れます。
ブラウザをすぐに閉じ
ます。サーバーをシャットダウンします。クライアントが最初にサーブレットとオペレーティングセッション、セッションオブジェクトの生成(Tomcat、Tomcatなど)を要求する

、デフォルト時間の実際の操作が期限切れ
になります。中間セッションのデフォルトの存続時間は30分、つまりインターフェイスを操作しない時間です。操作が行われると、セッションは再計測されます。セッションのデフォルト時間を変更できますか?答えはイエスです。Tomcatのweb.xmlファイルで変更できます。以下に示すように:

自分で有効期限を設定する
もちろん、上記の変更方法に加えて、session.setMaxInactiveInterval(int);を使用して、プログラムでセッションのライフサイクルを自分で設定し、セッションの最大非アクティブ時間を秒単位で設定することもできます。

session = req.getSession the HttpSession();
session.setMaxInactiveInterval(5);もちろん
、コード
コピーしてgetMaxInactiveInterval();を実行し、現在の最大非アクティブ時間Sessionオブジェクトを表示することもできます。

すぐに無効にする
か、session.invalidate();メソッドを使用してセッションをすぐに無効にすることもできます。

session.invalidate();
コードをコピーし
ブラウザ
セッションの下部閉じるには、Cookieの実装によって異なります。これは、さまざまなユーザーがサーバーにアクセスして使用するセッションを決定するため、ユーザーが最初にサーバーにアクセスしたときに、セッションIDがCookieに保存されることがよくあります。ユーザー側にとって、Cookieの有効時間はブラウザーを閉じることであるため、ブラウザーを閉じるとセッションは無効になります(それに対応するセッションIDがないため)。次の図に示すように、閉じてからもう一度開き、セッションIDをブラウザに再度割り当てます。

画像-20200708195027943

ここではCookieのみが無効であることに注意してください。サーバーに再度アクセスすると、新しいユーザーとして扱われ、前のセッションオブジェクトを破棄せずにセッションが作成されます。

サーバーのシャットダウン
サーバーが異常にシャットダウンされると、セッションは破棄されます。サーバーが正常にシャットダウンされると、セッションはワークスペースの作業ディレクトリにあるSESSION.serファイルのディスクにシリアル化されます。オブジェクトがセッションに保存されている場合、サーバーはシャットダウン時にオブジェクトをハードディスクにシリアル化するには、オブジェクトにSerializableインターフェースを実装する必要があり、次回サービスを開始したときに自動的にメモリにロードされます。次の図に示すように、通常のシャットダウン後、フォルダに追加のSESSIONS.serファイルがあり、サーバーを再起動するとファイルが消えることがわかります。

拡張機能〜Cookieの破棄

図からCookieの名前と内容を確認するだけでなく、情報の一部にも注意する必要があります。有効期限は、Cookieの有効期限を指定するために使用されます。デフォルトでは、現在のブラウザを閉じると無効になります。Cookieの有効時間(有効期限で計算)を手動で設定し、setMaxAge(int expiry);メソッドを使用してCookieの最大有効時間を秒単位で設定できます。

0より大きい整数は、保存する秒数を示します。負の数の場合は、Cookieが保存されないことを示します。0の場合、Cookieは削除されます。
負の整数:CookieのmaxAge属性のデフォルト値は-1です。これは、ブラウザのメモリにのみ存続することを意味します。ブラウザウィンドウを閉じると、Cookieは表示されなくなります。
正の整数:Cookieオブジェクトが指定された秒数の間存続できることを示します。寿命が0より大きい場合、ブラウザはCookieをハードディスクに保存します。ブラウザが閉じていても、クライアントコンピュータを再起動しても、Cookieは対応する時間存続します。
ゼロ:0に等しいCookieの有効期間は特別な値です。これは、Cookieが無効であることを意味します。つまり、元のブラウザがすでにCookieを保存している場合は、CookieのsetMaxAge(0)を使用してCookieを削除できます。このCooは、ブラウザのメモリまたはクライアントのハードディスクにあるかどうかに関係なく削除されます

おすすめ

転載: blog.51cto.com/14966610/2542500