2

我正在使用 HttpRequestHandler 将 Spring bean 注入 Servlet:

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

    @Autowired
    private MyService myService;

HttpServlet 具有针对不同请求方法的单独方法 doGet、doPost 等。但是 HttpRequestHandler 只有一个:

    public void handleRequest (HttpServletRequest req, HttpServletResponse resp)

那么如何分别处理该方法中的 GET 和 POST 请求呢?我需要对不同的请求方法有不同的逻辑。

更新: 我还有一个问题:是否有可能将 handleRequest 方法限制为仅通过配置支持 POST 请求并为其他请求自动发送 HTTP 错误 405?

4

2 回答 2

4

HttpServletRequest 提供方法 getMethod( )

返回发出此请求的 HTTP 方法的名称,例如 GET、POST 或 PUT。与 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 回答