Session ist nach Klick auf Zurück-Button wieder aktiv


JuriW

Mitglied
In meiner Webanwendung kann sich der User ausloggen.
Jedoch ist er wieder in der Session, sobald er auf den Zurück-Button klickt.

Am besten wäre es, wenn dem User beim Versuch zurückzukehren eine Fehlerseite angezeigt wird.

Wie kann ich das verhindern?

Mein Servlet sieht so aus:
Java:
package servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
        HttpSession session=request.getSession();
        session.removeAttribute("email");
        session.invalidate();
        response.sendRedirect("html/logout.jsp");
        return;

    }
}
 

Hinweis: Wenn du jetzt Java lernen möchtest, dann schau dir diese kurze Präsentation hier an (hier klicken!)
Sichere dir hier den Zugriff auf umfangreiches Java-Know How und starte richtig durch!

Hinweis: Wenn du jetzt Java lernen möchtest, dann schau dir diese kurze Präsentation hier an (hier klicken!)
Sichere dir hier den Zugriff auf umfangreiches Java-Know How und starte richtig durch!

httpdigest

Bekanntes Mitglied
Wenn der User den Browser-Backbutton drückt, hat er nicht wieder automatisch die Session (bzw. gilt als eingeloggt), sondern sieht einfach nur die Browser-gecachte Seite, die ihm ausgeliefert wurde, als er noch die Session hatte. Wenn er dann z.B. F5 drücken würde oder irgendeine Aktion auf der Seite auslöst, die dazu führt, dass ein Server-Request abgesendet wird und der Server die Session prüfen würde, würde die Session bereits invalide sein.
 

JuriW

Mitglied
Okay, gut zu wissen!
Ich überprüfe in auf meiner .jsp Datei ob die Session aktiv ist:
HTML:
<c:choose>
        <c:when test="${anmeldung != null }">
                <nav>
                    <ul>
                        <c:if test="${anmeldung.email == 'admin'}">
                            <li><a href="adminIndex.jsp">Administration</a></li>
                        </c:if>
                        <li><a href="../LogoutServlet">Logout</a></li>
                        <li><a href="kontakt.jsp">Kontakt</a></li>
                        <li><a href="impressum.jsp">Über uns</a></li>
                        <li><a href="index.jsp">Startseite</a></li>
                    </ul>
                </nav>
        </c:when>
            <c:otherwise>
                <nav>
                    <ul>
                        <li><a href="registrierung.jsp">Registrieren</a></li>
                        <li><a href="login.jsp">Login</a></li>
                        <li><a href="kontakt.jsp">Kontakt</a></li>
                        <li><a href="impressum.jsp">Über uns</a></li>
                        <li><a href="index.jsp">Startseite</a></li>
                    </ul>
                </nav>
            </c:otherwise>
        </c:choose>
Auch nachdem ich mich ausgeloggt habe, sehe ich den ersten Zweig (mit Logout, nachdem ich zurück gegangen und F5 gedrückt habe)

Wie überprüfe ich bei jedem Aktualisierungsvorgang serverseitig, ob die Session aktiv ist?
 
Zuletzt bearbeitet:

Tobias-nrw

Bekanntes Mitglied
Nein, es liegt noch ein Verständnisproblem vor denn gleicher Inhalt bei "Zurück" nach "Logout" ist kein unerwünschtes Verhalten.
 

Passende Stellenanzeigen aus deiner Region:


Neue Themen

Oben