我正在制作一个出勤的servlet。因此,在doGet()
方法中,将显示所有前端,如果生成任何错误;即,某些内容为空,则doPost()
方法应再次调用doGet()
以填写空格。
如何从同一个servlet&{39} doGet()
调用doPost()
方法?
答案 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框架......