从doPost()转发到doGet()

时间:2015-11-14 13:21:53

标签: java servlets

我正在制作一个出勤的servlet。因此,在doGet()方法中,将显示所有前端,如果生成任何错误;即,某些内容为空,则doPost()方法应再次调用doGet()以填写空格。

如何从同一个servlet&{39} doGet()调用doPost()方法?

2 个答案:

答案 0 :(得分:1)

如果我从字面上理解你的问题(即从doGet()调用doPost()),你可以调用doGet()方法......它是一种标准方法,就像其他方法一样。

此处'提示:当doPost()doGet()方法共享一组通用逻辑时,将该逻辑隔离为单独的(私有)方法是一种很好的做法,将由所有相关的do***()方法调用。例如:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // GET-based logic
  processCommonLogic();
  // Other GET-based logic
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // POST-based logic
  processCommonLogic();
  // Other POST-based logic
}

private void processCommonLogic() /* throws ServletException and/or IOException if needed */ {
  // Common logic
}

您可以使用此模式创建一个processError()方法,可以在任何需要的地方调用该方法。

但是,如果您的问题范围不仅仅是从doGet()调用doPost(),我建议您查看Alain O' Dea指出的参考文献。

答案 1 :(得分:0)

你可以做到这一点,它是一个简单的

  this.doGet(req, resp);
  return;

但是,这不是最佳做法。通常更好地将视图逻辑实现为JSP,并从post逻辑发送给它...

  this. getServletConfig().getRequestDispatcher("my_view.jsp")
    .forward(req,resp);;
  return;

或者使用include(),或者像Struts一样的MVC框架......