2012-11-19 4 views
6

Ich erstelle eine Login-Anwendung in JAVA.Ich mache die Präsentation in JSP und die ganze Logik (Datenbank-Konnektivität) in Servlet [das ist keine richtige Ansatz, den ich weiß]. Ich überprüfe den Benutzernamen Passwort in Servlet und dann eine Sitzungsvariable erstellen. und die Sitzung wie diesePreserving Sitzung in Java mit sendredirect

sess.setAttribute("username",oName); 

hinzufügen Dann leite ich der Benutzer auf seine Homepage student.jsp sagen

response.sendRedirect("student.jsp"); 

Es ist die Sitzung variable.I brauchen einen Weg, entfernt die Session-Variablen und Bewegung zu erhalten zu student.jsp.Ich habe versucht, Forwading zu verwenden, aber das hat nicht geklappt.

Es weiterleiten, aber die Seite Adresse ändert sich nicht zu student.jsp, die nicht gut ist. Jede Hilfe in dieser Hinsicht geschätzt wird Danke

+1

So funktioniert die Weiterleitung: Ersetzen Sie den Inhalt des Browsers, nicht die URL. Sie müssen Redirect verwenden, aber irgendwie erlaubt der Browser, in dem Sie die Tests durchführen, keine Cookies. Aktivieren Sie die Cookies in Ihrem Browser und führen Sie die Anwendung erneut aus. –

+1

Hier ist ein gutes Tutorial, das Ihnen beim Forwading helfen kann.Es entspricht JSP forwading in Servlet http://www.javapractices.com/topic/TopicAction.do?Id=181 –

Antwort

5

Für den umgeleiteten Anfrage zurück zu kommen und an der gleichen Sitzung anhängen, muss es eine Session-ID, in der Regel in einem JSESSIONID durch (oder einen anderen Namen) Cookie oder in der URL als Parameter

Dieser Cookie- oder URL-Parameter sollte vom Servlet-Container hinzugefügt werden und Sie müssen ihn nicht selbst hinzufügen.

Wenn der Cookie in Ihrem Browser nicht angezeigt wird und Sie die JSESSIONID nicht an die URL anhängen, erstellt er mit jeder Anfrage eine neue Sitzung, die nicht mit derselben Sitzung verknüpft ist.

-1

Verwenden Sie die RequestDispatcher und setzen Sie Ihren Benutzernamen Variable request.setAttribute(). In diesem Fall erstellt der Dispatcher keine neue Anfrage, sondern dieselbe Anfrage wird mit der Methode forward() weitergeleitet.

+1

Dies wird nicht lösen OP konkrete Problem bei alle. Auf diese Weise ist der Benutzer bei keiner nachfolgenden Anfrage angemeldet. – BalusC

0

Versuchen Sie, Ihren Kater zu bearbeiten context.xml Datei und ersetzen <Context> Tag zu <Context useHttpOnly="false">, das hat mir geholfen.

Verwandte Themen