GenericServletとHttpServlet
Genericservlet Vs Httpservlet
1 >>>>>>>>
HttpServletとGenericSeverletの違い
j
avax.servlet.
Servlet
----
サーブレットが実装する必要があるものを定義するインターフェースです。すべての実装のメソッドを定義します。これは、インターフェースが通常行うことです。
javax.servlet.GenericServlet ------ それは、プロトコルに依存しない汎用サーブレットです。 抽象的であるため、直接インスタンス化することはできません。いつかHTTP以外のプロトコル用のサーブレットを作成する必要がある場合に拡張できるクラスです。
javax.servlet.http.HttpServlet -------は、HTTPプロトコルを介して通信する場合に拡張される抽象クラスです。ほとんどの場合、これだけを気にする必要があります。
サーブレット:-
- サーブレットは、個別のOSプロセスではなく、Webコンテナ内のスレッドとして実行されます。
- 最初のリクエストが最初に来たときに作成されるオブジェクトは1つだけで、他のリクエストは同じオブジェクトを共有します。
- サーブレットはプラットフォームに依存しません。
- サーブレットは高速です。
GenericServlet:-
- すべてのプロトコルに一般的。
- サーブレットインターフェイスを実装します。
- サービス方式を使用します。
HttpServlet:-
- HTTPプロトコルの場合のみ。
- GenericServletクラスを継承します。
- serviceメソッドの代わりにdoPost、doGetメソッドを使用します。
2 >>>>>>>>
HttpServlet
- パブリック抽象クラス HttpServlet
- 拡張します GenericServlet
- java.io.Serializableを実装します
Webサイトに適したHTTPサーブレットを作成するためにサブクラス化される抽象クラスを提供します。 HttpServlet
のサブクラス少なくとも1つのメソッド、通常は次の1つをオーバーライドする必要があります。
doGet
、サーブレットがHTTPGETリクエストをサポートしている場合doPost
、HTTPPOSTリクエストの場合doPut
、HTTPPUTリクエストの場合doDelete
、HTTPDELETEリクエストの場合init
およびdestroy
、サーブレットの存続期間中保持されるリソースを管理しますgetServletInfo
、サーブレットがそれ自体に関する情報を提供するために使用します
コンストラクターの要約 | |
HttpServlet () これは抽象クラスであるため、何もしません。 |
メソッドの概要 | |
protected void | doDelete ( HttpServletRequest req, HttpServletResponse resp) サーブレットがDELETE要求を処理できるようにするために、サーバーによって( service メソッドを介して)呼び出されます。 |
protected void | doGet ( HttpServletRequest req, HttpServletResponse resp) サーバーによって( service メソッドを介して)呼び出され、サーブレットがGET要求を処理できるようにします。 |
protected void | doHead ( HttpServletRequest req, HttpServletResponse resp) 保護された service からHTTPHEADリクエストを受信しますメソッドとリクエストを処理します。 |
protected void | doOptions ( HttpServletRequest req, HttpServletResponse resp) サーブレットがOPTIONS要求を処理できるようにするために、サーバーによって( service メソッドを介して)呼び出されます。 |
protected void | doPost ( HttpServletRequest req, HttpServletResponse resp) サーブレットがPOSTリクエストを処理できるようにするために、サーバーによって( service メソッドを介して)呼び出されます。 |
protected void | doPut ( HttpServletRequest req, HttpServletResponse resp) サーブレットがPUT要求を処理できるようにするために、サーバーによって( service メソッドを介して)呼び出されます。 |
protected void | doTrace ( HttpServletRequest req, HttpServletResponse resp) サーブレットがTRACE要求を処理できるようにするために、サーバーによって( service メソッドを介して)呼び出されます。 |
protected long | getLastModified ( HttpServletRequest req) HttpServletRequest の時間を返しますオブジェクトが最後に変更されたのは、1970年1月1日午前0時からのミリ秒単位です。 |
protected void | service ( HttpServletRequest req, HttpServletResponse resp) パブリックから標準のHTTPリクエストを受信します service メソッドとそれらをdo にディスパッチします XXX このクラスで定義されたメソッド。 |
void | service ( ServletRequest req, ServletResponse res) 保護された service にクライアント要求をディスパッチします方法。 |
httpservletが抽象的である理由
メソッドをオーバーライドせずにhttpservletクラスを拡張すると、役に立たないサーブレットが得られます。
GenericServlet
パブリック抽象クラス GenericServlet
java.lang.Objectを拡張します
実装 サーブレット 、 ServletConfig 、java.io.Serializable
コンストラクターの要約 | |
---|---|
GenericServlet () 何もしません。 |
メソッドの概要 | |
---|---|
void | destroy () サーブレットコンテナによって呼び出され、サーブレットがサービスを停止していることをサーブレットに示します。 |
String | getInitParameter ( String name) String を返します名前付き初期化パラメーターの値を含む、またはnull パラメータが存在しない場合。 |
Enumeration | getInitParameterNames () サーブレットの初期化パラメータの名前を Enumeration として返します。のString オブジェクト、または空のEnumeration サーブレットに初期化パラメータがない場合。 |
ServletConfig | getServletConfig () このサーブレットを返します ServletConfig オブジェクト。 |
ServletContext | getServletContext () への参照を返します ServletContext このサーブレットが実行されている場所。 |
String | getServletInfo () 作成者、バージョン、著作権など、サーブレットに関する情報を返します。 |
String | getServletName () このサーブレットインスタンスの名前を返します。 |
void | init () super.init(config) を呼び出す必要がないようにオーバーライドできる便利なメソッド。 |
void | init ( ServletConfig config) サーブレットがサービスに配置されていることをサーブレットに示すために、サーブレットコンテナによって呼び出されます。 |
void | log ( String msg) 指定されたメッセージをサーブレットのログファイルに書き込み、先頭にサーブレットの名前を付けます。 |
void | log ( String message, Throwable t) 指定された Throwable の説明メッセージとスタックトレースを書き込みますサーブレットの名前が前に付いたサーブレットログファイルの例外。 |
abstract void | service ( ServletRequest req, ServletResponse res) サーブレットがリクエストに応答できるようにするためにサーブレットコンテナによって呼び出されます。 |
3 >>>>>>>>
Service()またはtoGet()、toPost()をいつ使用する必要がありますか?
doGet()
の違いおよびdoPost()
メソッドは、HttpServlet
で呼び出されるというものです。サーブレットがそのservice()
によって拡張されることHTTPプロトコルリクエストからGETまたはPOSTリクエストを受信するときのメソッド。
GETリクエストは、 取得する サーバーからのリソース。これは、ブラウザがWebページを要求する場合です。リクエストでパラメータを指定することもできますが、 全体としてのパラメータの長さは制限されています 。これは、html:またはでこのように宣言されたWebページのフォームの場合です。
POSTリクエストは、 役職 (送信する)フォームデータをサーバー上のリソースに送信します。これは、htmlでこのように宣言されたWebページのフォームの場合です。この場合、パラメータのサイズははるかに大きくなる可能性があります。
GenericServlet
service()
がありますクライアント要求が行われたときに呼び出されるメソッド。これは、着信要求の両方によって呼び出され、HTTP要求がそのままサーブレットに渡されることを意味します(自分で解析を行う必要があります)。
HttpServlet
代わりにdoGet()
がありますおよびdoPost()
クライアント要求がGETまたはPOSTのときに呼び出されるメソッド。これは、リクエストの解析がサーブレットによって行われることを意味します。適切なメソッドが呼び出され、リクエストパラメータを読み取るための便利なメソッドがあります。
注意: doGet()
およびdoPost()
メソッド(および他のHttpServlet
メソッド)はservice()
によって呼び出されます方法。
結論として、
HTTPプロトコルクライアント(通常はブラウザ)によって行われたGETまたはPOSTリクエストに応答する必要がある場合は、遠慮なく拡張してくださいHttpServlet
便利な方法を使用します。
HTTPプロトコルを使用していないクライアントからの要求に応答する必要がある場合は、service()
を使用する必要があります。
賛成票 22 反対票 | これが
|