2013-04-10 52 views
-4

我打電話從主servlet的另一個servlet,這本來是通過實現JSP容易,但我對這個實驗的目的是隻使用servlet的,請幫助我可以覆蓋doPost方法的servlet的方法,多次

+0

簡單地回答:不能。 – 2013-04-10 17:26:43

+0

我不認爲我理解這個問題。您的帖子正文與標題沒有多大關係。你能澄清嗎? – iamnotmaynard 2013-04-10 17:31:41

回答

2

你可以在班級中多次覆蓋方法,因此您無法多次覆蓋doPost

如果你的意思是超負荷,那麼這樣做沒有什麼好的理由。最後,Servlet容器只會調用其中的一種方法。

如果您想使用單個Servlet處理超過1種請求,您可以發送一個參數指示您將執行的操作。例如:

@WebServlet("/person") 
public class PersonCRUDServlet extends HttpServlet { 

    private static final String ADD = "add"; 
    private static final String DELETE = "delete"; 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     String action = request.getParameter("action"); 
     //using if assuming you work with Java SE 6 
     if (ADD.equals(action)) { 
      add(request, response); 
     } else 
     if (DELETE.equals(action)) { 
      delete(request, response); 
     } else { 
      //submitted action can't be interpreted 
      //or no action was submitted 
      errorForward(request, response); 
     } 
    } 

    private void add(HttpServletRequest request, HttpServletResponse response) { 
     //handle logic for add operation... 
    } 

    private void delete(HttpServletRequest request, HttpServletResponse response) { 
     //handle logic for delete operation... 
    } 

    private void errorForward(HttpServletRequest request, HttpServletResponse response) { 
     //handle logic for delete operation... 
    } 
} 

請注意,這是手動處理的很多工作(這是存在Java Web MVC框架的原因)。您也可以參考

+0

想法完全一樣:) – skuntsel 2013-04-10 17:47:21