2

私は HttpRequestHandler を使用して、Spring Bean をサーブレットに注入しています。

@Component("myServlet")
public class MyServlet implements HttpRequestHandler {

    @Autowired
    private MyService myService;

HttpServlet には、さまざまなリクエスト メソッドに対して個別のメソッド doGet、doPost などがあります。しかし、HttpRequestHandler には 1 つしかありません。

    public void handleRequest (HttpServletRequest req, HttpServletResponse resp)

では、このメソッドで GET リクエストと POST リクエストを別々に処理するにはどうすればよいでしょうか? リクエストメソッドごとに異なるロジックが必要です。

更新: また、質問があります: 構成によって POST 要求のみをサポートするように handleRequest メソッドを制限し、他の要求に対して HTTP エラー 405 を自動的に送信する可能性はありますか?

4

2 に答える 2

4

HttpServletRequest はメソッド getMethod() を提供します

GET、POST、PUT など、この要求が行われた HTTP メソッドの名前を返します。CGI 変数 REQUEST_METHOD の値と同じです。

于 2013-07-25T13:53:44.940 に答える
3
public void handleRequest (HttpServletRequest req, HttpServletResponse resp)
{       
   if(req.getMethod().equalsIgnoreCase("GET")){
     //GET BODY
   }
   else if(req.getMethod().equalsIgnoreCase("POST")){
     //POST BODY
   }    
}
于 2013-07-25T15:23:25.377 に答える