Servlets 如何按顺序执行多个servlet?
我刚刚开始使用servlet,并设法使用一些servlet作为单独的URL来填充数据库以进行一些虚拟测试。某种形式: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");
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可以独立使用。谢谢你的建议。