Guten Abend,
vorwiegend zu Übungszwecken bastle ich grad an einem Kontaktformular.
Drei Felder: Name, Email, Nachricht.
Hierbei möcht ich mich ans MVC-Konzept halten.
Die JSP enthält das Formular. Beim Abschicken wird ein Servlet aufgerufen, das die Daten verarbeitet (u.a. die Mail verschickt, ggf. Fehlercodes generiert, etc.), Ergebnis im Bean ablegt, anschließend (zunächst mal pauschal, ist ja nur ein Test) zur aufrufenden JSP weiterleitet, welche das Ergebnis präsentiert.
Funktioniert alles recht schön, allerdings bekomme ich dann, wenn ich den Scope auf "request" setze:
und im Servlet am Ende auf diese Weise:
zur JSP weiterleite, in der Browser-Adresszeile die URL des gemappten Servlets angezeigt. Unschön.
Bei Verwendung von Scope "Session" (an sich ja unnötig) und Weiterleitung durch
ließe sich (zumindest) das zwar zunächst schöner hinkriegen, allerdings ist der Scope dann eben auch "Session" und ich krieg bei jedem Neubetreten des Formulars diejenigen Daten in die Felder gesetzt, die beim letzten Absenden des Formulars drinstanden. Auch wieder unschön. :wink:
Wie macht man das jetzt am Schönsten? Lässt sich das auch irgendwie so hinbiegen bzw. zurechtmappen, dass bei der Weiterleitung über Statuscode 302 vom Servlet zur JSP dann wirklich der Name der JSP angezeigt wird und nicht der des gemappten Servlets?
Gruß Michi
vorwiegend zu Übungszwecken bastle ich grad an einem Kontaktformular.
Drei Felder: Name, Email, Nachricht.
Hierbei möcht ich mich ans MVC-Konzept halten.
Die JSP enthält das Formular. Beim Abschicken wird ein Servlet aufgerufen, das die Daten verarbeitet (u.a. die Mail verschickt, ggf. Fehlercodes generiert, etc.), Ergebnis im Bean ablegt, anschließend (zunächst mal pauschal, ist ja nur ein Test) zur aufrufenden JSP weiterleitet, welche das Ergebnis präsentiert.
Funktioniert alles recht schön, allerdings bekomme ich dann, wenn ich den Scope auf "request" setze:
Code:
<jsp:useBean id="emailAbsenderBean" class="servlet.EmailAbsenderBean" scope="request" />
und im Servlet am Ende auf diese Weise:
Code:
RequestDispatcher dispatcher = request.getRequestDispatcher ( "kontakt.jsp" );
dispatcher.forward ( request, response );
zur JSP weiterleite, in der Browser-Adresszeile die URL des gemappten Servlets angezeigt. Unschön.
Bei Verwendung von Scope "Session" (an sich ja unnötig) und Weiterleitung durch
Code:
response.sendRedirect( "/java/kontakt.jsp" );
ließe sich (zumindest) das zwar zunächst schöner hinkriegen, allerdings ist der Scope dann eben auch "Session" und ich krieg bei jedem Neubetreten des Formulars diejenigen Daten in die Felder gesetzt, die beim letzten Absenden des Formulars drinstanden. Auch wieder unschön. :wink:
Wie macht man das jetzt am Schönsten? Lässt sich das auch irgendwie so hinbiegen bzw. zurechtmappen, dass bei der Weiterleitung über Statuscode 302 vom Servlet zur JSP dann wirklich der Name der JSP angezeigt wird und nicht der des gemappten Servlets?
Gruß Michi