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

オリジナルゴー:https://dzone.com/articles/what-servlet-container

この記事では、私は基本的な考え方について少し書き  、Webサーバ、  サーブレットコンテナ  ととの関係  JVMを私は、サーブレットコンテナは、Javaプログラム以外の何物でもないことを示したいと思います。

1. Webサーバーとは何ですか?

サーブレットコンテナが何であるかを知るために、我々は最初のWebサーバーが何であるかを知っておく必要があります

Webサーバ

Webサーバは、  データを転送するためにHTTPプロトコルを使用しています。簡単な状況では、URLでユーザタイプ(例えば  www.programcreek.com/static.html)  ブラウザ(クライアント)で、そして読むためにWebページを取得します。それでは、サーバが行うことは、クライアントにWebページを送信しています。変換は、要求および応答メッセージのフォーマットを指定するHTTPプロトコルです。

2.サーブレットコンテナとは何ですか?

私たちはここを参照してください、ユーザ/クライアントは、サーバから静的Webページのみを要求することができます。ユーザーが自分の入力に基づいてウェブページを読みたい場合、これは、十分ではありません。サーブレットコンテナの基本的な考え方は、動的にサーバー側でWebページを生成するためにJavaを使用しています。だから、サーブレットコンテナは、基本的にサーブレットと対話するWebサーバの一部です。

Webサーバ&サーブレットコンテナ

サーブレットコンテナは、  サーブレットのコンテナです。

3.サーブレットとは何ですか?

サーブレットは  のjavax.servletパッケージで定義されたインタフェースです。init()メソッド()、サービス()、および破壊する-これは3つの基本的なサーブレットのライフサイクルのためのメソッドを宣言します。彼らは、(SDKまたは自己定義で定義された)すべてのサーブレットによって実装され、サーバによって特定の時間に起動されます。

  1. init()メソッドは、サーブレットのライフサイクルの初期段階の間に呼び出されます。これは、サーブレットは、Webアプリケーションから初期化パラメータにアクセスすることを可能にするjavax.servlet.ServletConfigインタフェースを実装するオブジェクトが渡されています。
  2. サービス()メソッドは、初期化後の各要求に応じて呼び出されます。各要求は、自身の別のスレッドで処理されます。Webコンテナは、すべての要求のためのサーブレットのサービス()メソッドを呼び出します。サービス()メソッドは行われて要求の種類を決定し、要求を処理するための適切な方法にそれをディスパッチします。
  3. サーブレット・オブジェクトが破棄されるべきであるとき破棄()メソッドが呼び出されます。それは開催されているリソースを解放します。

サーブレットオブジェクトのライフサイクルから、我々はサーブレットクラスが動的にクラスローダによってコンテナにロードされていることがわかります。各要求は独自のスレッドであり、およびサーブレットのオブジェクトは、同じ時間(スレッドセーフではない)で、複数のスレッドを提供することができます。それはもはや使用されている場合、それはJVMによって収集されたごみはいけません。

任意のJavaプログラムと同様に、サーブレットは、JVM内で実行されます。HTTPリクエストの複雑さに対処するために、サーブレットコンテナがでてくる。サーブレットコンテナは、サーブレット作成、実行、破壊する責任があります。

4.どのようにサーブレットコンテナとウェブサーバプロセスの要求?

  1. Webサーバーは、HTTPリクエストを受信します
  2. Webサーバーは、コンテナをサーブレットに要求を転送します
  3. それは、コンテナ内に存在しない場合、サーブレットは、動的に、コンテナのアドレス空間に取り出され、ロードされます。
  4. (サーブレットが最初にロードされたときに一度呼び出された)コンテナは、初期化のために、サーブレットのinit()メソッドを呼び出します
  5. 容器は、すなわち、HTTP要求を処理要求データを読み取り、応答を定式化するサーブレットのサービス()メソッドを呼び出します。サーブレットコンテナのアドレス空間に残り、他のHTTP要求を処理することができます。
  6. Webサーバーが正しい場所に動的に生成された結果を返します

6つのステップは、以下の図の上にマークされます。

サーブレットコンテナ - ライフサイクル

JVMの5.役割

サーブレットを使用すると、JVMは、別のJavaスレッド内の各要求を処理することができ、これは、サーブレットコンテナの重要な利点の一つです。各サーブレットは、HTTP要求に応答特別な要素を持つJavaクラスです。サーブレットが含まれているの主な機能は、処理のためのサーブレットを補正するために要求を転送し、JVMは、それらを処理した後に正しい位置に動的に生成された結果を返すことです。ほとんどの場合、サーブレット・コンテナでは、単一のJVMで動作しますが、コンテナは複数のJVMを必要とするソリューションがあります。

おすすめ

転載: www.cnblogs.com/dklig/p/11595911.html