Pass Hidden-Parameter mit der Antwort.sendRedirect()
Wie würde ich den pass versteckte Parameter? Ich will eine Seite aufrufen (test.jsp), sondern auch pass 2 versteckten Parameter, wie ein post.
response.sendRedirect("/content/test.jsp");
InformationsquelleAutor der Frage Ashish Anand | 2013-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
TheNewIdiot Antwort erfolgreich erklärt das problem und der Grund, warum Sie nicht senden Sie die Attribute in der Anfrage durch eine Umleitung. Mögliche Lösungen:
Unter Verwendung der Weiterleitung. Dies ermöglicht, dass die Anfrage-Attribute weitergegeben werden konnten, um die Ansicht und Sie können Sie in form von
ServletRequest#getAttribute
oder mit Die Expression Language und JSTL. Kurzes Beispiel (Wiederverwendung TheNewIdiot Antwort] - code).Controller (Ihre servlet)
Ansicht (Ihre JSP)
Verwenden von Skriptlets:
Dies ist nur für information. Skriptlets-Nutzung muss vermieden werden: So vermeiden Sie Java-code in JSP-Dateien?. Unten gibt es das Beispiel mit EL und JSTL.
Wenn Sie nicht verwenden können, die Weiterleitung (weil Sie es nicht mögen oder Sie nicht das Gefühl, dass es der Weg ist, oder weil Sie verwenden müssen, eine Umleitung), dann eine option wäre, das speichern einer Nachricht als session-Attribut, dann umleiten, um Ihre anzeigen, wiederherstellen der session-Attribut in Ihrem Blick und entfernen aus der Sitzung. Denken Sie daran, immer Ihre Benutzer-Sitzung nur mit relevanten Daten. Code-Beispiel
Controller
Ansicht
Wieder, dies zeigen die Verwendung von scriptlets und dann EL + JSTL:
InformationsquelleAutor der Antwort Luiggi Mendoza
In der Regel können nicht Sie senden eine POST-Anforderung mit sendRedirect() Methode. Sie können RequestDispatcher zu vorwärts() Anfragen mit Parametern innerhalb der gleichen web-Anwendung, die gleiche Kontext.
Den HTTP-Spezifikation besagt, dass alle Umleitungen müssen in form von GET (oder HEAD).
Sie können verschlüsseln Sie Ihre query-string-Parameter, wenn Sicherheit ein Thema ist.
Eine andere Möglichkeit ist, dass Sie buchen können, um das Ziel, indem es mit einem versteckten Formular mit der Methode POST und Absenden mit javascript, wenn die Seite geladen wird.
InformationsquelleAutor der Antwort NINCOMPOOP
Mit
session
habe ich erfolgreich einen parameter (name
) vom servlet #1 auf servlet #2, mitresponse.sendRedirect
in servlet #1. Servlet #1 code:In Servlet #2, die Sie nicht brauchen, um
name
zurück. Es ist bereits mit der Sitzung verbunden ist. Sie konnte tunString name = (String) request.getSession().getAttribute("name");
---aber Sie brauchen nicht diese.Wenn Servlet #2 ruft eine JSP-Datei, können Sie zeigen
name
diese Weise auf die JSP-Webseite:<h1>Welcome ${name}</h1>
InformationsquelleAutor der Antwort Raymond Gan