Wie kann ich nach Ablauf der Sitzung zur Anmeldeseite umleiten?

Ich habe drei JSF 2.0-Webmodule und muss nach Ablauf der Sitzung zur Anmeldeseite umleiten.

Ich habe es mit einem probiertHttpSessionListenernennt es diesessionDestroyed() Event-Methode, aber ich kann die Anfrage dort nicht weiterleiten / umleiten. Ich denke, es ist, weil es keine gibtHttpServletRequest undHttpServletResponse Objekte.

Ich habe es auch mit einem probiertPhaseListener, aber es kommt zu einem Fehler "zu viele Weiterleitungen" im Webbrowser.

public class SessionListener implements PhaseListener {

    public PhaseId getPhaseId() {
        return PhaseId.RESTORE_VIEW;
    }

    public void beforePhase(PhaseEvent event) {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            try {
                System.out.println("Session Destroyed");
                FacesContext.getCurrentInstance().getExternalContext().redirect("login.jsf");
            }
            catch (Exception e) {
                System.out.println("error" + e);
            }
        }
    }

    public void afterPhase(PhaseEvent event)  {
        try {
            System.out.println("Session Created");
        }
        catch (Exception e) {
            System.out.println("error" + e);
        }
    }

}

Warum funktionieren diese Versuche nicht und wie kann ich es am besten lösen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage