|
|
Sessionvariable
Dirk, 18.09.2001 14:13:27
Wenn ich auf einer JSP-Seite mit 'session.putValue("Name",Wert)' einen Wert definiere, kann ich diesen Wert im Internetexplorer (5.0) ohne Probleme auf einer anderen Seite mit session.getValue("NameDerVAriablen") wieder auslesen. In meinem Fall wurde die andere Seite mit response.sendRedirect("AndereSeite.jsp") aufgerufen.
Wenn ich dieselben Seiten auf dem Netscape-Navigator laufen lasse, werden die Sessionvariablen nicht übergeben.
Weiß jemand woran das liegen kann?
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Re: Sessionvariable
Marc, 18.09.2001 17:05:38
Wahrscheinlich sind bei deinem Netscape die Cookies deaktiviert. Der richtige Weg für den Redirect ist : response.sendRedirect(response.encodeRedirectURL("AndereSeite.jsp")),
dann wird bei Deaktivierten Cookies die Session-ID über die URL übertragen (siehe auch hier unter Tipps und Tricks).
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Re: Re: Sessionvariable
Dirk, 18.09.2001 17:40:12
Hallo Marc,
vielen Dank für die prompte Antwort. An den Cookies lag es nicht (Alle aktiviert). Auch das Einfügen von 'response.sendRedirect(response.encodeRedirectURL("AndereSeite.jsp"))' hat nicht geholfen. Dafür hat aus Tipps und Tricks <jsp:forward page="AndereSeite.jsp" /> wunderbar funktioniert. Ich kann es mir zwar nicht erklären, bin aber glücklich.
Bis dahin
Dirk
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Unterschied zwischen Forward und sendRedirect()
Geronimo, 20.09.2001 18:10:21
Die beiden Statements <jsp:forward> und response.sendRedirect() scheinen zunächst recht ähnlich zu sein. Beide ermöglichen, den User zu einer anderen Seite (z.B. JSP, Servlet, Web-Page) zu schicken als die, die er ursprünglich angefordert hat.
Der <jsp:forward>-Tag leitet serverseitig das HttpServletRequest-Objekt mit allen gesetzten Parametern an die neue Zielseite weiter, d. h. alle Parameter sind auf der neuen Page verfügbar. Bei Verwendung von response.sendRedirect() gehen alle Parameter verloren.
response.sendRedirect() hingegen sendet einen Redirect HTTP Code 301 mit der neuen URL zurück an den Browser. Der Browser(!) sendet dann einen Request mit der neuen URL an den Server. response.sendRedirect() ist daher gegenüber <jsp:forward> erheblich inperformanter.
Die Verwendung von response.sendRedirect() ist wegen der Nachteile in Performanz und Dynamik eigentlich nur dann sinnvoll, wenn sich die Root-URL einer Page geändert hat. Browser (bzw. Crawler, Search Engines usw.) können dadurch automatisch die verzeichnete URL ändern. Für das normale dynamische Verzweigen innerhalb einer Anwendung ist immer <jsp:forward> zu bevorzugen.
Ob der Erhalt oder das Verwerfen der Session nach sendRedirect() spezifiziert ist, weiss ich nicht mit Sicherheit zu sagen. Gefühlsmäßig müsste sie erhalten bleiben, aber in jedem Fall würde ich mich nicht darauf verlassen. Also möglichst keine Parameter an die Session hängen um sie nach dem sendRedirect() auszuwerten. Lieber <jsp:forward> benutzen und die Parameter soweit möglich und nicht in der Session nötig an den Request hängen.
Geronimo
Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.
|
Legende: Anonymer User registrierter User sehr aktiver User
|
|
Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir
betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten
haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf
dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer
Homepage angebrachten Links
Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig-
und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes.
Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen
obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung
einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung
bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.
Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries.
IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation.
Other trademarks and registered trademarks are the property of their respective owners.
|
|
|
|