2012-04-02 3 views
1

Ich bin beschäftigt mit einer Website, die nur eine Seite hat, zugänglich nur nach dem Einloggen: home.jsp. Sobald der Benutzer mit einer gültigen Sitzung angemeldet ist, sollte er, wenn er die Zurück-Taste im Browser drückt, zu login.jsp und erneut weitergeleitet werden, wenn er die Vorwärts-Taste des Browsers drückt. Er sollte nicht ohne sich zu home.jsp Lage sein, zu So, nachdem einige Recherchen zu tun, ich umgesetzt habe.Umleiten der Seite auf benutzerdefinierte Seite anstelle von Standard-sagen "Webseite abgelaufen ist" bei Verwendung zurück/vorwärts Schaltfläche

<% 
response.setHeader ("Cache-Control","no-cache,no-store,must-revalidate"); 

response.setHeader("Pragma","no-cache"); 

response.setDateHeader ("Expires", 0) 
%> 

Auf der home.jsp Seite und auf die Vorwärts-Taste drücken, es sagt Webseite abgelaufen ist, aber was ich suche, ist meine Cutom Seite, etwas wie sessionExpired.jsp sagen, wieder einloggen ...

Bitte helfen Sie mir mit, wie dies zu beheben.

Antwort

1

Implementieren Sie das Post-Redirect-Get Muster. Jedes Mal, wenn der Endbenutzer eine (erfolgreiche) POST-Anforderung sendet, senden Sie eine Weiterleitung an die Zielseite. Auf diese Weise zeigt die Zurück-Schaltfläche auf die umgeleitete GET-Anforderung anstelle der POST-Anforderung (die offensichtlich abgelaufen ist, weil Sie den Browser angewiesen haben, sie nicht zwischenzuspeichern).

z. in Ihrer doPost() Methode Umgang mit dem Login:

User user = userService.find(username, password); 

if (user != null) { 
    request.getSession().setAttribute("user", user); 
    response.sendRedirect("nextpage.jsp"); // Here, you need to send a redirect to landing page after login. 
} 
+0

@ BalusC-- Danke, Kann ich benutze die gleiche Logik mit 'RequestDispacther' Verfahren, bei dem auch werde ich über rdObj.forward (Request, Response) gehe zum Ziel --- RequestDispactiher Objekt. ??? – Ars

+0

Dies sendet keine Umleitung. Es sendet ein Vorwärts. Verstehst du den Unterschied? – BalusC

Verwandte Themen