undso: Endlosschleife bei forward

Hallo Forum, warum gibt da shier eigentlich eine Endlosschleife:

MeineSeite.jsp

.
..
...
....

if (request.getParameter("param_eins")!=null) {

if (request.getParameter("param_zwei")!=null) param_zwei=request.getParameter("url_param_zwei");

if ( url_param_zwei.equals("0") ) { %>
   <jsp:forward page="main.jsp?cms=MeineSeite">
   <jsp:param name="fehler" value="Falsche Eingabe"/>
   </jsp:forward>
  <% }

}
.....
....
..
.
if (request.getParameter("fehler")!=null) {
 fehler=request.getParameter("fehler");

%>

<%=fehler %>

<%
}
%>

Sobald ich das erste Mal, bzw. nach einer bestimmten Aktion die Seite main.jsp?cms=MeineSeite&param_eins=1&param_zwei=0 aufrufe, leite ich die Fehlermeldung zwar wieder aud die gleiche Seite "MeineSeite.jsp", übergebe aber im forward den Parameter "param_eins" garnicht mit, so dass er die Schleife eigentlich garnicht aufrufen sollte.

Die URL-Adresszeile bleibt aber bei "main.jsp?cms=MeineSeite&param_eins=1&param_zwei=0", da bei einem forward in JSP die Adresszeile nicht verändert wird. Könnte zwar die Fehlermeldung auf eine andere Seitr weiterleiten, wollte aber, dass der Code schön sauber auf einer Seite integriert ist. Könnte man die Endlosschleife da irgendwie umgehen?

Grüße

  1. Hallo,

    sieh Dir bitte http://www.jsptutorial.org/content/standardActions?lang=de#innerLink3 an!
    Zitat:

    "Bei einem Forward hingegen bleibt die Ausführung komplett auf der
    Seite des Servers. Bisher angefallenen Teile der Antwortseite wer-
    den verworfen und eine völlig neue Aktion (neues Servlet oder neu
    JSP) ausgeführt. Damit ist auf der Zielseite noch die komplette
    Informationsmenge vorhanden, die vor dem Forward schon im
    HttpServletRequest (bzw. bei JSPs im impliziten request-Objekt)
    gespeichert war."

    Wahrscheinlich wird in main.jsp erneut auf das Request-Objekt zugegriffen. Es kommt zu der beschriebenen Schleife.

    Gruß aus Berlin!
    eddi

    1. hi

      Wahrscheinlich wird in main.jsp erneut auf das Request-Objekt zugegriffen. Es kommt zu der beschriebenen Schleife.

      ich habe nen Kollegen gefragt, anscheinend wird bei einem forward die ganze Anfrage, also auch die Parameter davor nochmal übergeben, deshalb habe ich diese Endlosschleife.
      Dann gibt es kein drumherum, dass ich den Fehler auf eine neue Seite weiterleite.

      Grüße