2013-07-25 41 views
2

我使用HttpRequestHandler到Spring Bean注入到Servlet的:如何使用HttpRequestHandler分別GET和POST請求

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

    @Autowired 
    private MyService myService; 

HttpServlet中有不同的方法的doGet,doPost方法等,爲不同要求的方法。 但HttpRequestHandler只有一個:

public void handleRequest (HttpServletRequest req, HttpServletResponse resp) 

那麼如何處理GET和POST請求在單獨這種方法嗎?我需要針對不同的請求方法有不同的邏輯。

UPDATE: 我也有一個問題:是否有可能限制的handleRequest方法來支持配置和sendHTTP錯誤405自動爲其他請求僅POST請求?

+1

我不做春天,所以我不知道關於規範春天的方法,但它沒有發生,你可以只檢查'req.getMethod()'? – BalusC

回答

4

HttpServletRequest provides the method getMethod()

返回與此請求在HTTP方法的名稱,例如,GET,POST,PUT或。與CGI變量REQUEST_METHOD的值相同。

+0

謝謝。另外我有一個問題,是否有可能限制handleRequest方法來僅支持配置的POST請求並自動發送HTTP錯誤405? – kostepanych

3
public void handleRequest (HttpServletRequest req, HttpServletResponse resp) 
{  
    if(req.getMethod().equalsIgnoreCase("GET")){ 
    //GET BODY 
    } 
    else if(req.getMethod().equalsIgnoreCase("POST")){ 
    //POST BODY 
    }  
}