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
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: