在一个servlet中双向前进

时间:2013-10-03 10:00:49

标签: jsp tomcat servlets forward

我有一个带有表单的JSP页面。 当按下此表单中的按钮时,id称为我的MainServlet。 这是我的Servlet的一个例子

/***** MainServlet *****/    

/* Call the servlet that comunicate with database */  
request.getRequestDispatcher("Servlet1").forward(request,response)

/* Return on the same JSP that have invoke MainServlet */
request.getRequestDispatcher("myJsp.jsp").forward(request,response);

return;

这是错误的,因为当我按下表单中的按钮时,我的服务器返回错误: “响应提交后无法转发”

我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:1)

您无法同时转发到两个不同的资源。

您需要使用Servlet1再次从myJsp.jsp转发到request.getRequestDispatcher("myJsp.jsp").forward(request,response);

您不能直接转发两次,因为当您执行一次时,您的响应已经提交,客户端将使用第一个资源提供服务。

您可以使用条件语句,它将转发到适当的资源,具体取决于正确的请求。

答案 1 :(得分:0)

请求转发后,其余代码不会执行。它就像在方法中一个接一个地调用一个return语句一样。 如果你想要两个前锋都能工作。您应该使用条件,具体取决于哪个条件,将执行一个前向语句。