五、のServletContext、セッション管理

ServletContext

サーブレットコンテキストとは何ですか?

  ServletContext:また、サーブレットコンテキストと呼ばれます。容器を開始した後、各Webアプリケーションのコンテナは、のServletContextインターフェイス要件を実装するオブジェクト、サーブレットコンテキストとして知られているオブジェクトを作成します。

  WEBサーバが起動すると、各Webアプリケーションのための共有記憶領域(Webアプリケーション中の各ディレクトリのアプリケーションプログラムである)を作成します。

  また、「共通領域」と呼ばれるのServletContextは、つまり、WEBアプリケーションと、サーブレットとJSPのすべてが同じ領域を共有することができます。

 

ServletContext特徴:

  1、のServletContextライフサイクル:WEBサーバーのシャットダウン時に、サーバーが破壊され、起動時に作成しました。

  2、一意性、サーブレットコンテキストに対応するウェブアプリケーション

  図3に示すように、サーブレット・コンテキストが常に存在する限り、コンテナが閉じられていないとして、アプリケーションがアンロードされていない、がありました。

 

サーブレットコンテキストを取得するには?

  GenericServletから、のServletConfig、HttpSessionの、に、FilterConfigサーブレット・コンテキストを取得する方法のgetServletContext()を提供します。

  //オブジェクト・クラス・サーブレットを流れる電流は、それに関連付けられたServletContextオブジェクト、すなわちコンテキストを与えます
      ServletContextアプリケーション= this.getServletContext()。

 

ServletContextのコンテキストの影響:

  1、データバインディング

    setAttribute、使用条件下で満たさremoveAttribute、のgetAttribute、短いライフサイクルを使用することの優先順位(要求<セッション<のServletContext)

  2、初期化パラメータは、グローバル読みます

    web.xmlでまず、このような構成

    <! - グローバルな初期化パラメータを設定します - >
    <コンテキスト-PARAM>
      <param-name>の会社</ PARAM名>
      <Paramの値> YORK落雷ゲーム</ PARAM値>
    </コンテキスト-param>の
 
 
HttpSessionのものの差(プライベートエリア)とのServletContext(公共エリア)とは何ですか?
1、別のスコープ:HttpSessionのクライアントごとに別々のブラウザです。
         各アプリケーションのためのWEB存在のServletContextである
第一のHttpSessionを作成するためには、サーバにアクセスし、サーバは、30分かけてアクセス間隔が破壊するでrequest.getSession()を呼び出し:2、異なる生存期間。
         ServletContextは、サーバが起動し、サーバーが停止しているときに破壊されたときに作成しました。
 
 
================================================== ================================================== ===================================
 
セッション管理
 
セッションとは何ですか?
  ブラウザがサーバに要求し、サーバは処理後、要求を受信すると、セッションでの応答を与えます。
 
セッション管理(追跡)とは何ですか?
  では 何回も サーバーとのセッションのブラウザの間に、サーバは、このセッションの追跡と呼ばれ、クライアントのブラウザに関するいくつかの情報を記録することがあります。
 
セッションの役割?
   HTTPのため のプロトコルは、「ステートレス」プロトコル(プロトコルタイプが切断)は 、クライアントブラウザ応答後サーバに、すなわち、それがネットワークから切断されます。次回クライアントブラウザがサーバーへのネットワーク接続要求を再確立します。実際には、HTTPプロトコルは、サーバーのパフォーマンスを確保することです。そして、この場合には、デフォルトのサーバーは、クライアントのブラウザに関する情報が記録されません。
  だから、セッショントラッキングは 、クライアントとサーバーの通信を維持するために使用されます
 
どのようにセッション管理?
  クッキー:ブラウザに保存された状態で、すべてのデータをクライアントがサーバに送信された要求でサーバに要求を送信した各時間がある、それを修正してから、このモデルは、クッキーと呼ばれる保存されたクライアントに送り返さ。
  セッション:状態はサーバ上に保存し、データのこのセット、クライアントに送り返さだけの数の番号をマーク。クライアントがサーバに要求を送信した場合にのみ、この番号を介して送信する必要があり、サーバーがこの数に応じて、このような投与に対応するパターンデータを検索します。
 
================================================== ================================================== ===================================

クッキーとは何ですか?

  少量のデータを一時的にサーバブラウザ側に格納されています。

クッキーは動作します:

  ブラウザがサーバにアクセスする場合、サーバは、(Set-Cookieヘッダーを使用して)ブラウザに少量のデータを送信する、ブラウザは、一時的にデータを保存する、データブラウザが再度サーバにアクセスするとき、それは送信前に保存され(Cookieヘッダを使用して)サーバへ

 

クッキーの有効期間:デフォルトでは、ブラウザのクッキーは、内部のメモリに保存されます。限りブラウザが閉じないよう、クッキーが保存されていたであろう、ブラウザのクッキーを削除する閉じます。

  cookie.setMaxAge(int型秒)

    秒> 0、ブラウザのクッキーは、時​​間をかけて、ブラウザのクッキーが削除され、ハードディスク(保存ファイル形式)に保存されます

    デフォルトで秒<0、クッキーは、メモリに保存されます。 

    秒= 0、すぐにクッキーを削除

 

問題のコーディング:中国の法律上のASCII文字列に中国を変換する必要がある場合クッキーは、法的なASCII文字を保持することができます。

  文字列のURLEncoder.encode(文字列str、文字列の文字セット)

  文字列のURLDecoder.decode(文字列str、文字列の文字セット)

 

クッキーの制限

  • ユーザーを禁止することができます
  • あなたが唯一の少量のデータを保存することができます(約4K)
  • (数百程度)店舗の数を制限
  • 中国は、符号化する必要があるための唯一の文字列を格納します。

================================================== ================================================== ===================================
 
HttpSessionのは何ですか?
  状態を保存するためのサーバー側には特別なオブジェクトを作成しました。
 
HttpSessionの原則:
  ブラウザがサーバーにアクセスすると、サーバは(オブジェクトは、一般的にセッションIDと呼ばれる固有のIDを持っている)セッションオブジェクトを作成し、サーバーがブラウザ(cookieに送信するためのデフォルトの方法)に送られたセッションIDになる、ブラウザがセッションIDになります(メモリ内に)保存され、ブラウザが再度サーバにアクセスするとき、セッションIDがサーバに送信され、セッションID基づいて、対応するセッション・オブジェクトを見つけます。
 
HttpSessionのを取得する方法は?
  HttpSessionのS =でrequest.getSession(ブーリアンフラグ)
    そうならば、対応するセッションオブジェクトを見つけるためにセッションIDに応じて(リターンで発見することは、それは新しいセッションオブジェクトを作成し、見つけることができませんでした)、そこにセッションIDをそれらを参照してください、そうでない場合は、セッションオブジェクトを作成するための真の、最初の要求へのフラグ
    フラグがfalseの場合ではない場合、そこにセッションIDを、それらを参照する最初の要求は、セッション・オブジェクトを作成できません。その場合、は、セッションIDに基づいて対応するセッションオブジェクトを見つけるために(戻りを見つける、戻りヌルを見つけることができません)
    フラグが空である場合、HttpSessionのS =でrequest.getSession()は、上記の引数に相当し、真であります

 

 HttpSessionのそれが破壊されたとき、それは、作成されたとき?

作成:サーバーへの最初の要求は、サーバーは、サーブレットでrequest.getSession()メソッドに作成さを呼び出します。

破壊:ブラウザの間隔が30分以上のサーバーへのアクセスなしの場合、サーバーは、対応するHttpSessionオブジェクトを破壊します。(デフォルトでは30分で設定可能です。)

<セッション設定> 
  <セッションタイムアウト> 30 </セッションタイムアウト> 
</セッション設定>
  
  
 
 

おすすめ

転載: www.cnblogs.com/danielJinyu/p/11364056.html