私は、serviceメソッドをオーバーライドし、いくつかのレガシーサーブレットを持っています
よるとHttpServletをドキュメントサービスメソッドは、特定の例では、上書きするべきではありません。
あります、ほとんどのサービスメソッドをオーバーライドする理由は。各HTTPリクエストの種類(上記のdoXxx方法)のためのハンドラメソッドにディスパッチすることにより、サービスのハンドル標準のHTTP要求。
私は、サービス方法について、いくつかの答え見つからないメソッドを呼び出すと
doGet()、doPostメソッド()および他のDO-メソッドの呼び出しは、HttpServletのクラスであります
それは完了だデフォルトでと上書きすることができます
サーブレットは、service()メソッドをオーバーライドして、異なる実装を提供するので、それはもうそれをしません。代わりに、それはありません...メソッドのコードが何をしますか。
そして、なぜ言うの答えではない、それをオーバライド
サーブレットは、他の方法を処理してみましょう。
私は、なぜこのメソッドをオーバーライドするために、任意の正当な理由がなかったが、どのような場合(複数可)がありますか?
に対応してもよいと思われるDRYルール(DOは自分自身を繰り返さない)ので、すべてのメソッドを行うのと同じ方法を実行します。
あなたは思い持って上書きしservice
ますが、非標準のHTTPメソッドに派遣されていないすなわち、1つの処理する必要がある場合doXxx
方法をHttpServlet
。
RFC 2616 HTTPのドキュメント言います:
HTTP / 1.1のための一般的な方法のセットが以下に定義されます。が、このセットを拡張することができ、追加の方法は、個別に拡張クライアントとサーバで同じ意味を共有すると仮定することはできません。
あなた自身の引用さえものののみ、暗黙的に、同じことを言います:
オーバーライドするほとんどない理由はあります
service
方法は。service
ハンドル標準各HTTP要求タイプ(のハンドラメソッドにディスパッチすることにより、HTTPリクエストdoXXX
上記の方法)。
暗黙的には、非標準のリクエストメソッドをオーバーライドして処理しなければならないということです。