オーバーライドHttpServletをサービスメソッドへのサーブレットの有効な理由

user7294900:

私は、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上記の方法)。

暗黙的には、非標準のリクエストメソッドをオーバーライドして処理しなければならないということです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=189252&siteId=1