Servlets 如何按顺序执行多个servlet?

Servlets 如何按顺序执行多个servlet?,servlets,sequence,Servlets,Sequence,我刚刚开始使用servlet,并设法使用一些servlet作为单独的URL来填充数据库以进行一些虚拟测试。某种形式: public class Populate_ServletName extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain");

我刚刚开始使用servlet,并设法使用一些servlet作为单独的URL来填充数据库以进行一些虚拟测试。某种形式:

public class Populate_ServletName extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
     resp.setContentType("text/plain");
     //Insert records
     //Print confirmation
  }
}
我有大约6个这样的servlet,我想按顺序执行。我曾考虑使用setLocation设置下一个要重定向的页面,但不确定这是否是正确的方法,因为重定向应该在插入记录后发生。具体来说,我正在寻找这样的东西:

public class Populate_ALL extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
     resp.setContentType("text/plain");
     //Call Populate_1
     //Call Populate_2
     //Call Populate_3
     //...
  }
}

有什么建议吗?

看起来您可能需要的是一个服务,每个servlet都可以使用它来执行一些工作。然后,servlet不是相互依赖,而是全部使用服务

但是,这里解释了在与Servlet的
URL模式匹配的URL上使用

public class Populate_ALL extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     response.setContentType("text/plain");
     request.getRequestDispatcher("/populateServlet1").include(request, response);
     request.getRequestDispatcher("/populateServlet2").include(request, response);
     request.getRequestDispatcher("/populateServlet3").include(request, response);
     //...
  }
}
注意:如果这些servlet不能独立使用,那么这是错误的方法,您应该为此使用独立的Java类,它不扩展
HttpServlet
。就你的具体情况而言,我认为这可能会引起人们的兴趣

此处不适用,因为它在响应头已提交时抛出
IllegalStateException
。当您通过多个servlet传递请求/响应时,情况无疑就是这样,每个servlet都会写入响应

此处绝对不适用,因为它隐式创建了全新的
请求
响应
,从而破坏了原有的请求

另见:

+1用于此。servlet可以独立使用。谢谢你的建议。