Servlet: Cannot forward after response has been committed

HPB

Erfahrenes Mitglied
Hi,
ich habe ein Servlet, dass Formulardaten auswerten und ggf einen Fehler ausgeben soll. Fülle ich das Formular "falsch" aus, wirft meine fachliche Klasse eine Exception und ein Catch-Block im Servlet leitet mit forward an eine entsprechende JSP weiter, die den Fehler anzeigt.

Beim Forward bekomme ich aber immer folgende Meldung:
Cannot forward after response has been committed.

Leider bin ich noch JSP-Anfänger. Was mache ich falsch? Ist das ein guter Programmierstil? (Servlet als Einstiegsseite, das dann je nach Status der Session, post, get, Fehler,... an entsprechende JSPs weiterleitet) ?

Danke,
PETER
Code:
import java.io.IOException; 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class SearchServlet extends HttpServlet {
	
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			//getSession:
			HttpSession session=request.getSession();
			//remove former errors
			session.removeAttribute("errorMsg");
			//Parser as InputBean-Faktory
			
			DataInputBeanParser parser= new DataInputBeanParser(30);
			DataInputBean inputBean=null;
			try{ 
				inputBean=parser.getDataInputBean(request.getParameter("input"),
										request.getParameter("pattern"),
										request.getParameter("errors"));
			}catch(InvalidInputException ioe){
				//mark error in form.jsp and request new user input
				session.setAttribute("errorMsg",ioe.getMessage());
				request.getRequestDispatcher("error.jsp").forward(request,response);     //Fehler: Cannot forward...
			}
			
			
			DataOutputBean outputBean=new ShiftOrSolver().solve(inputBean);
			
			request.getRequestDispatcher("searchResult.jsp").forward(request,response);
		 	
	}


	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			request.getRequestDispatcher("inputForm.jsp").forward(request,response);
				
	}

	
}
 
Zuletzt bearbeitet:
Hallo!

Gabs da nicht was von wegen das ein Forward nur dann möglich ist, wenn noch keine Informationen zum Client gesendet wurden?

Gruß Tom
 
Zurück