1

サーブレットの本体内に独自のメソッドを作成するとどうなりますか?サーブレットコンテナはそれを処理しますか?はいの場合、どのように?いいえの場合、なぜですか?

4

3 に答える 3

2

いいえ、サーブレットはブラウザによって呼び出されるカスタムHttpメソッドをサポートしていません。

サポートされているメソッドについては、サーブレット2.5仕様の第2章をお読みください。

http://download.oracle.com/otndocs/jcp/servlet-2.5-mrel2-eval-oth-JSpec/

于 2012-07-29T17:02:11.347 に答える
1

はいサーブレットコンテナはカスタムHttpメソッドをサポートしています。anyメソッドが呼び出されると、コンテナーはservice()メソッドを呼び出します。また、GET、POSTなどの標準のHttpメソッド以外のhttpメソッドのHttpServletResponse.SC_NOT_IMPLEMENTEDステータスコードを返すHttpServlet.service()メソッド。

カスタムhttpメソッドが必要な場合。service()メソッドをオーバーライドし、HttpServletRequest.getMethod()を使用してメソッドを取得し、カスタムメソッドを呼び出します。

例の場合、

 public class CustomMethodServlet extends HttpServlet{


public void service(HttpServletRequest req, HttpServletResponse res) {\
   if(request.getMethod().equals("foo")){
   //invoke your custom method
     doFoo(request,response);
   }else {
      super.service(request, response);
   }

}
public void doFoo(HttpServletRequest req, HttpServletResponse res) {
   //implement your custom method
}

}

サーブレットの上記のメソッドは、foohttpメソッドを使用して呼び出すことができます。

于 2012-06-26T17:36:39.193 に答える
0

サーブレットではなく、JSPページを意味しているように聞こえます。サーブレットはJavaクラスであり、本体はありません。サーブレットには、サービスメソッドとメソッドおよびその他のメソッドがあります。Javaは、別のメソッド内にメソッドを作成することをサポートしていません。

于 2012-10-11T18:55:36.177 に答える