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



## JuriW (12. Jan 2019)

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:

```
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;

    }
}
```


----------



## httpdigest (12. Jan 2019)

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 (12. Jan 2019)

Okay, gut zu wissen!
Ich überprüfe in auf meiner .jsp Datei ob die Session aktiv ist:

```
<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?


----------



## Xyz1 (12. Jan 2019)

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


----------

