2016-01-19 41 views

回答

1

有什麼區別?

這只是一個普通的代碼移動到一個地方,例如事:

public class TestServlet extends HttpServlet 
{ 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     response.getWriter().println("Welcome to TestSevlet"); 
    } 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     processRequest(request, response); 
    } 
} 

*注:的doPost()和的doGet()是Servlet接口的一部分,和的processRequest()是隻是一個常用的輔助方法的名稱,不是任何接口的一部分

你應該使用processRequest()嗎?

這取決於你的servlet應該如何做人,如何你的servlet調用,如果你想有比GET請求POST請求不同的行爲,然後分別實現它們。如果您的servlet應該具有相同的行爲,無論調用GET還是POST,然後將它們路由到相同的processRequest()方法。

在大多數情況下(可能是90%的時間)是的,你可以路由的doGet()和doPost(),以單一的processRequest()方法。

的一個示例如果要爲POST請求上傳文件並查看某個GET請求的某些數據,則希望將這兩個都路由到processRequest()方法。

是的processRequest()好的做法?

如果GET和POST正在做同樣的事情,那麼絕對是。實際上,Arun Gupta(Java EE的主要規範之一)使用這種模式in his samples

相關問題