私はサーブレットは初めてではありません。しかし、私はまだ興味があります: なぜjavax.servlet
パッケージは単独で配布されないのですか? コードをコンパイルする前にアプリケーション サーバーをインストールする必要があるのはなぜですか?
3 に答える
簡単な回答です。個別に配布されます。
サーブレットは仕様であり API です。JAR が必要な場合は、仕様サイトServlet Spec 3.0からダウンロードしてください。
明らかに、実際にアプリケーションをデプロイしたい場合でも、実装 (つまりサーバー) が必要になります。
サーブレット API は、いくつかの jar を介して利用可能であり、必要なことを行うことができます。Maven ではhereです。アプリケーション サーバーなしでコードをコンパイルすることはできますが、おそらく期待どおりの結果にはなりません。やっぱインターフェースだけだな
サーブレットは、Web アプリケーションのコンテキストでのみ実際に関連するものであり、これがサーブレット コンテナが存在する理由です。それらは実装です。リクエストがサーブレットに到達する前にコンテナが行うすべての作業を見てみましょう: Tomcat Sequence Diagram。
EJB のような他の Java EE テクノロジのようなサーブレットは、 Java Community Process ProgramのJSR (Java Specification Requests) からの仕様です。
リリースされた仕様に基づいて実装を提供する責任は、Application Server ベンダーにあります。この場合 -サーブレット 2.5の場合 -サーブレット 3.0の場合
Sun/現在、Oracle はjavax.servlet
パッケージを個別にリリースしており、 Maven リポジトリからダウンロードすることも、J2ee 準拠のアプリケーション サーバー/Web コンテナーの lib フォルダー内で利用することもできます。つまり、Tomcat の場合はTOMCAT_HOMEDIR/lib/servlet-apiで利用できます
の場合developing and compiling , this jar is sufficient
は、 のみになりneed the Application server only when you want to actually deploy your application
ます。