10月5日の「OracleのJava EEのプログラミングガイド」:リクエスト、セッション、コンテキスト属性の比較

リクエスト、セッションのコンテキスト属性の比較

、属性が関連している、のHttpServletRequest、HttpSessionの同一のServletContextに三つの方法がある
公共のボイドのsetAttribute(文字列名)1 )、オブジェクトの値は: オブジェクトのプロパティは、それぞれの範囲内に格納されているように、この方法が使用されます。
2)パブリック・オブジェクトのgetAttribute(文字列名 ): 特定の範囲からプロパティを取得するために使用される方法。
3)公共無効removeAttribute(文字列名 ): 属性の範囲からこのメソッドを削除します。

要求属性
のHttpServletRequestは、上記3つのメソッドを提供する、オブジェクトがリクエストの属性として格納されていてもよい、要求はオブジェクトの名前属性によって取得することができる、対応する属性は、名前によって削除することができます。Requestオブジェクトのライフサイクルは、各スレッドのアクセスWebコンポーネント短く、要求は次のリソースに転送されている場合にのみ、要求を転送し、新しい要求を作成します。したがって、要求は、コンテナ属性メモリの長期的な存在ではありません、問題の同時アクセス、およびとき原因プロパティが使用要求属性を作るために、要求に関連する機能を完了するために使用することができません。

セッション属性
のHttpSessionインタフェースは、オブジェクトがセッションの属性として格納されていてもよい、三つの方法は、上記定義し、セッションオブジェクトは、対応する属性名を削除することができる属性名を取得することができます。Sessionオブジェクトは、ライフサイクルが要求さよりも長く、最初のセッションで一意のオブジェクトです。Webアプリケーションは、セッションがセッション属性の使用を検討する前に、プロパティを使用しなければならないときに、特定のオブジェクトは、セッションの範囲内で共有されなければならないときにのみお勧めします。

コンテキストプロパティ
のServletContextインタフェースは、オブジェクトがコンテキストの属性として格納されていてもよい、上記3つのメソッドを提供する、コンテキストオブジェクトは、対応する属性名を削除することができる属性名を取得してもよいです。打ち上げコンテナコンテキストオブジェクトが作成されると、正方形のコンテナが閉じられ、そのライフサイクルが非常に長いされている場合にのみ破壊しました。そして、コンテキストオブジェクトの唯一の単一のアプリケーションは、それゆえ、簡単にオブジェクトがコンテキスト・プロパティの使用を検討する前に、範囲のコンテキスト内で共有されなければならないと判断された場合にのみ、コンテキスト属性を使用しないでください。

おすすめ

転載: blog.csdn.net/goldentec/article/details/105337206