【问题标题】:Can i override doPost method of servlet many times我可以多次覆盖 servlet 的 doPost 方法吗
【发布时间】:2013-04-10 17:25:24
【问题描述】:

我正在从主 servlet 调用另一个 servlet,通过实现 jsp 本来很容易,但我的实验目标是只使用 servlet,请帮助

【问题讨论】:

  • 简单回答:你不能。
  • 我不认为我理解这个问题。您的帖子正文与标题没有太大关系。你能澄清一下吗?

标签: java servlets


【解决方案1】:

你不能在一个类中多次覆盖一个方法,所以你不能多次覆盖doPost

如果您的意思是超载,则没有充分的理由这样做。最后,Servlet Container 只会调用其中一个方法。

如果您想使用单个 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 框架存在的原因)。也可以参考

【讨论】:

  • 想的一模一样:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
相关资源
最近更新 更多