の正確な違いを探しjavax.servlet.http.HttpServlet
てjavax.servlet.GenericServletいjavax.Servletましたが、見つけることができませんでした。
「正確な差」とは
- 使用法
- javax.servlet.GenericServlet存在理由
「正確な違い」とはどういう意味ですか? API には、正確な違いがリストされています。
Servletサーブレットが実装する必要があるものを定義するインターフェースです。
GenericServletプロトコルに依存しない汎用サーブレットです。
HttpServletHTTP プロトコルに特化したサーブレットです。
それらのいずれかをいつ使用するかを尋ねていますか?
HttpServlet一般に、アプリケーションの Web レイヤーを実装するために拡張します。
Servlet独自のコンテナーを作成している場合や、すべてを自分で処理している場合は、実装できます。GenericServlet別のプロトコルを処理するように拡張することもできますが、そうでない場合もあります。
javax.サーブレット
サーブレットは、サーバー側の Web テクノロジです。名前が示すように、クライアントの要求を処理し、サーバーからの応答を受け取ります。サーブレットの作業を処理するには、javax.Servlet (インターフェース) を実装する必要があります。
javax.servlet.GenericServlet
サイン:
public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
javax.servlet.http.HttpServlet
サイン:
public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
javax.servlet.Servletはインターフェースであり、すべての実装のメソッドを定義します。これが、インターフェースが通常行うことです。
javax.servlet.GenericServletはプロトコルに依存しません。これは抽象的であるため、直接インスタンス化することはできません。HTTP 以外のプロトコル用のサーブレットを作成する必要がある場合に拡張するのに使用できるクラスです。
javax.servlet.http.HttpServletは、HTTP プロトコルで通信する場合に拡張する抽象クラスです。ほとんどの場合、これだけを気にする必要があります。
リンクの背後にあるより正確な情報を見つけることができます。
-> 共通の機能の 1 つは、これらのクラスが両方とも抽象クラスであることです。
→ GenericServlet は HttpServlet クラスのスーパークラスです。
-> 主な違いは、HttpServlet はプロトコルに依存するのに対し、GenericServlet はプロトコルに依存しないことです。したがって、GenericServlet はすべてのタイプのプロトコルを処理できますが、HttpServlet は HTTP 固有のプロトコルのみを処理します。
-> GenericServlet は javax.servlet パッケージに属します。HttpServlet は javax.servlet.http パッケージに属します
-> GenericServlet は、Object を拡張し、Servlet、ServletConfig、および java.io.Serializable インターフェイスを実装する抽象クラスです。HttpServlet は、GenericServlet を拡張し、java.io.Serializable インターフェイスを実装する抽象クラスです。
-> GenericServlet は、doGet() および doPost() メソッドを含まない service() メソッドのみをサポートします。HttpServlet は、doGet()、doPost()、doHead() メソッド (HTTP 1.0)、および doPut()、doOptions()、doDelete()、doTrace() メソッド (HTTP 1.1) もサポートします。
HttpServletは HTTP プロトコルに固有であるため、HTTP 動詞 、 などのメソッドと、HTTP 固有の要求および応答オブジェクトを受け取る汎用メソッドのバージョンを提供doGetしますdoPost。これは、実際には非常に最小限のインターフェイスserviceである特殊なタイプです。Servlet
GenericServletServletインターフェイスの基本的な、プロトコルに依存しない実装です。多くの場合、API でインターフェイスの同様の基本的な実装を見つけることができます。この場合、 APIGenericServletに少しの機能を追加します。サーブレットの初期化パラメーターの、、およびパススルー メソッドです。を拡張することにより、これらの追加の恩恵を受けます。ServletgetServletNamegetServletInfoHttpServletGenericServlet
通常、この API に対するコーディングはすべてHTTP Web サービスの実装に使用されますが、カスタム プロトコルまたは別の現存するプロトコル (FTP など) を使用して、サーバー/サービス機能の実装にHttpServlet拡張または使用することもできます。GenericServlet
--> GenericServlet1 つのフォームから複数のクライアント要求を処理できます。一方、複数のフォームHttpServletから要求された複数のクライアントを処理できます。HTML
-->GenericServletステートレスでHttpServletステートフルです。
javax.servletパッケージに存在するすべてのクラス、インターフェイス、およびメソッドは、プロトコルに依存しません (すべてのプロトコルに共通)。
対照的に、javax.servlet.httpパッケージに存在するすべてのクラス、インターフェース、およびメソッドはプロトコルに依存します (HTTP プロトコルに固有)。