我可以覆盖doPost方法的servlet的方法,多次

问题描述:

我打电话从主servlet的另一个servlet,这本来是通过实现JSP容易,但我对这个实验的目的是只使用servlet的,请帮助我可以覆盖doPost方法的servlet的方法,多次

+0

简单地回答:不能。 – 2013-04-10 17:26:43

+0

我不认为我理解这个问题。您的帖子正文与标题没有多大关系。你能澄清吗? – iamnotmaynard 2013-04-10 17:31:41

你可以在班级中多次覆盖方法,因此您无法多次覆盖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