23

の正確な違いを探しjavax.servlet.http.HttpServletjavax.servlet.GenericServletjavax.Servletましたが、見つけることができませんでした。

「正確な差」とは

  1. 使用法
  2. javax.servlet.GenericServlet存在理由
4

11 に答える 11

26

「正確な違い」とはどういう意味ですか? API には、正確な違いがリストされています。

Servletサーブレットが実装する必要があるものを定義するインターフェースです。

GenericServletプロトコルに依存しない汎用サーブレットです。

HttpServletHTTP プロトコルに特化したサーブレットです。

それらのいずれかをいつ使用するかを尋ねていますか?

HttpServlet一般に、アプリケーションの Web レイヤーを実装するために拡張します。

Servlet独自のコンテナーを作成している場合や、すべてを自分で処理している場合は、実装できます。GenericServlet別のプロトコルを処理するように拡張することもできますが、そうでない場合もあります。

于 2012-07-17T20:17:54.703 に答える
12

javax.サーブレット

サーブレットは、サーバー側の Web テクノロジです。名前が示すように、クライアントの要求を処理し、サーバーからの応答を受け取ります。サーブレットの作業を処理するには、javax.Servlet (インターフェース) を実装する必要があります。

javax.servlet.GenericServlet

サイン:

public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
  1. GenericServlet は、プロトコルに依存しない汎用サーブレットを定義します。
  2. GenericServlet は青写真を提供し、サーブレットの作成を容易にします。
  3. GenericServlet は、ライフサイクル メソッドの init および destroy と、ServletConfig インターフェースのメソッドの単純なバージョンを提供します。
  4. GenericServlet は、ServletContext インターフェースで宣言された log メソッドを実装します。
  5. 汎用サーブレットを作成するには、abstract service() メソッドをオーバーライドするだけで十分です。

javax.servlet.http.HttpServlet

サイン:

public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
  1. HttpServlet は、HTTP プロトコル固有のサーブレットを定義します。
  2. HttpServlet は、Http サーブレットの青写真を提供し、それらの作成を容易にします。
  3. HttpServlet は GenericServlet を拡張するため、プロパティ GenericServlet を継承します。
于 2012-07-17T20:19:00.913 に答える
10

javax.servlet.Servletはインターフェースであり、すべての実装のメソッドを定義します。これが、インターフェースが通常行うことです。

javax.servlet.GenericServletはプロトコルに依存しません。これは抽象的であるため、直接インスタンス化することはできません。HTTP 以外のプロトコル用のサーブレットを作成する必要がある場合に拡張するのに使用できるクラスです。

javax.servlet.http.HttpServletは、HTTP プロトコルで通信する場合に拡張する抽象クラスです。ほとんどの場合、これだけを気にする必要があります。

リンクの背後にあるより正確な情報を見つけることができます。

于 2012-07-17T20:20:25.780 に答える
7

-> 共通の機能の 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) もサポートします。

于 2013-10-22T06:31:29.970 に答える
2

HttpServletは HTTP プロトコルに固有であるため、HTTP 動詞 、 などのメソッドと、HTTP 固有の要求および応答オブジェクトを受け取る汎用メソッドのバージョンを提供doGetしますdoPost。これは、実際には非常に最小限のインターフェイスserviceである特殊なタイプです。Servlet

GenericServletServletインターフェイスの基本的な、プロトコルに依存しない実装です。多くの場合、API でインターフェイスの同様の基本的な実装を見つけることができます。この場合、 APIGenericServletに少しの機能を追加します。サーブレットの初期化パラメーターの、、およびパススルー メソッドです。を拡張することにより、これらの追加の恩恵を受けます。ServletgetServletNamegetServletInfoHttpServletGenericServlet

通常、この API に対するコーディングはすべてHTTP Web サービスの実装に使用されますが、カスタム プロトコルまたは別の現存するプロトコル (FTP など) を使用して、サーバー/サービス機能の実装にHttpServlet拡張または使用することもできます。GenericServlet

于 2012-07-17T20:23:13.840 に答える
1

--> GenericServlet1 つのフォームから複数のクライアント要求を処理できます。一方、複数のフォームHttpServletから要求された複数のクライアントを処理できます。HTML

-->GenericServletステートレスでHttpServletステートフルです。

于 2013-04-26T13:51:36.530 に答える
0

javax.servletパッケージに存在するすべてのクラス、インターフェイス、およびメソッドは、プロトコルに依存しません (すべてのプロトコルに共通)。

対照的に、javax.servlet.httpパッケージに存在するすべてのクラス、インターフェース、およびメソッドはプロトコルに依存します (HTTP プロトコルに固有)。

于 2013-10-24T17:58:29.730 に答える