2011-12-19 14 views
2

サービス方法ではdoGet()doPost()メソッドがどのように変更されるのですか?サービスメソッドでdoGet()メソッドとdoPost()メソッドを変更しますか?

+1

あなたの質問は正確ですか?サービスメソッドは、要求されたフォームアクションに基づいてdoGet()またはdoPost()を呼び出します。サーブレットでこれらをオーバーライドすることができます。 – sudmong

+0

サーブレットの詳細を知りたいと思うかもしれないと思うかもしれません。http://jcp.org/aboutJava/communityprocess/final/jsr315/index.html – x4snowman

答えて

3

クライアントのブラウザからGETリクエストが送信された場合は、doGet()メソッドで処理されます。 クライアントブラウザがPOSTリクエストを送信した場合は、doPost()メソッドで処理されます。

これはあなたが知りたいことですか? :O

UPDATE:

側でservice(HttpServletRequest req, HttpServletResponse resp)方法、サーバはHttpServletRequest.html#getMethod()を使用して、要求メソッドを取得します。その値を使用可能なHTTPメソッドタイプと比較し、関連するdoGetdoPostまたは他の一致するメソッドを呼び出します。

サービス(HttpServletRequestのREQ、HttpServletResponseのRESP)http://www.docjar.com/html/api/javax/servlet/http/HttpServlet.java.html

リクエストパラメータがサーバに送信され、利用があっGETPOST方法を、使用するためのものか以外

メソッドの実装を参照してください。他のAFAIKの変更はありません。

+0

私はそれを知っていますが、リクエスト後に知るべきことはブラウザから来たものです。 "how doGetサービスメソッドのdoPost変更 " –

0

HttpServletRequest#getMethod()(このリクエストが行われた)を使用してリクエスト方法のタイプを確認することができます。

1

HttpServletクラスのサービスメソッドが実装されているため、すべてのユーザー定義サーブレットクラスがHttpservletクラスを拡張する必要があります。これはライブラリクラスです。そのクラス2サービスメソッドが実装されています.oneはpublic void serviceメソッドです。インタフェースメソッド。 と2つのパラメータ(HttpServletRequestとHttpServletResponse)で保護されたvoidメソッドをオーバーロードしています。 publicサービスメソッドは、保護されたサービスメソッドとprotecedサービスメソッドを呼び出します。これはロジックの内部にあります。クライアントリクエストのタイプがGETタイプであるかどうかをチェックし、doGet()メソッドを呼び出し、POSTタイプdoPost()メソッドを呼び出します。 これらの2つのメソッドもprotected service()メソッドで実装されていますが、ユーザー定義サーブレットクラスでこれらのメソッドをオーバーライドしてタスクを実行します。

関連する問題