Endlosschleife bei forward
undso
- java
0 Edgar Ehritt0 undso
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¶m_eins=1¶m_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¶m_eins=1¶m_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
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
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