「Tomcatはサーブレットコンテナである」、プログラマーのための2019年、この文は理解しておく必要があります。
私たちはコードの断片うち抽象的なことができますので、この単純な文を考えてみましょう:
class Tomcat {
List<Servlet> sers;
}
复制代码
Tomcatは長い道のりで、それは確かに動作しない場合は、そう、実際には、Tomcatはこれです:
class Tomcat {
Connector connector; // 连接处理器
List<Servlet> sers;
}
复制代码
我々は唯一のコネクタが要求を処理するための責任がある知っている必要があり、基礎となるコネクタの実装を検討するためにここではありません。
我々はまだ考えコンテナ。
状況
名前が示すように、サーブレットコンテナは、サーブレットの負荷を格納するために使用されます。
Aサーブレットは、サーバ(サーブレット=サーバー+アプレット)上で実行されるプログラムを表します。ユーザーに要求を送信するために、プログラムの必要性を、このようなプログラムを使用したいとのプログラムに応じて取得し、すなわち、サーブレット仕様のServletRequest、ServletResponseを。
私たちのプロジェクトは通常、それは他のビジネスロジックに要求、または要求を受信するための責任でなければならサーブレット、の一つ以上を持つことになりますので、だから、実際には、Javaサーブレットは、リクエスト内の仕様に対処します。
私たちのSpring MVCの、春ブーツだからのDispatcherServlet(サーブレット同様の機能は、要求を受信する責任がある)があります。
これはしたがって、通常サーブレット・アプリケーション(プログラム)に属している、換言すれば、我々のアプリケーションは、サーブレット、複数のアプリケーション、すなわちTomcatのコンテキスト(アプリケーション・コンテキスト)に-第二層サーブレットコンテナ。そして、第一層サーブレットコンテナそれ?
ラッパー
ラッパーは、第一層のサーブレットコンテナで、サーブレットラッパーは、それが最も近いサーブレットあるので、パッケージャを表し、なぜラッパーそれ?
私たちは、通常、ラッパーはこのだと思います。
class Wrapper {
Servlet servlet;
}
复制代码
Aラッパーはそうあなたがラッパーを必要としない、そして、と思うが、我々は他のいくつかの例を検討する必要があるために、サーブレットに対応しています。
- 例えば、フィルタは、フィルタは、サーブレットの対応するものです。
- たとえば、ServletPoolの場合、通常はサーブレット要求のスレッドは、すべてに共通ですが、サポートリクエストだけで別のサーブレットの例を使用してサーブレット内のすべてのスレッド。
したがって、ラッパーに、さらにので、フィルタータンクとサーブレットを含むだけでなく、サーブレットを含むラッパーは、第一の層サーブレット・コンテナです。
ホスト
ホストが複数のアプリケーションを含めることができますので、私たちの現実の生活では、アプリケーションは、ホストコンピュータ上で展開され、アプリケーションはそのため、複数のサーブレットが含まれているホストがコンテナの第三層です。Tomcatのでは、ホストが仮想ホストを表し、Tomcatは要求を処理する際に、ホストが処理され、要求に応じて、適切なドメイン名を入力することができます。
エンジン
ホスト管理コンテキスト、コンテキスト管理ラッパー、ラッパー管理サーブレット、エンジンはホストを管理するために使用されている間。エンジンは、したがって、第4層容器です。
遂に
確かに一部の人が疑問を持って、その後、コンテナの上部には、エンジンは、それを必要としないのですか?必要ではありませんか?例えば:
私たちのお金(サーブレット)は、お財布(ラッパー)に、袋(コンテキスト)に配置するためにあなたの財布の中、トランク(ホスト)に配置するバッグは、トランクには、上の航空機(エンジン)に配置する必要があります。
あなたは私に言わせればそう、「エンジンは何を入れて?」私に尋ねると同等で、「航空機を入れています?」
答えはされて必要はありませんので、もはや、コンテナのより高いレベルを必要としません。
概要
Tomcatのでは、容器は、に分けられます。
- ラッパー
- 状況
- ホスト
- エンジン
記事は、「コンテナ」の概念の私の簡単なTomcatの理解を表現するために、今日は時間がかかる、書き込み記事にあまりにも長い間、非常に短いではありません、私たちはまだそれを収穫することができます願っています。私たちは、私の公共番に集中することができます1:25常に新しい技術と理解するための新しい考え方に更新され、。