我有一个带有表单的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;
这是错误的,因为当我按下表单中的按钮时,我的服务器返回错误: “响应提交后无法转发”
我该如何解决这个问题?
感谢。
答案 0 :(得分:1)
您无法同时转发到两个不同的资源。
您需要使用Servlet1
再次从myJsp.jsp
转发到request.getRequestDispatcher("myJsp.jsp").forward(request,response);
您不能直接转发两次,因为当您执行一次时,您的响应已经提交,客户端将使用第一个资源提供服务。
您可以使用条件语句,它将转发到适当的资源,具体取决于正确的请求。
答案 1 :(得分:0)
请求转发后,其余代码不会执行。它就像在方法中一个接一个地调用一个return语句一样。 如果你想要两个前锋都能工作。您应该使用条件,具体取决于哪个条件,将执行一个前向语句。