So leiten Sie die Indexseite um, wenn die Sitzungszeit in der JSF -Anwendung stattgefunden hat

StackOverflow https://stackoverflow.com/questions/2543094

  •  23-09-2019
  •  | 
  •  

Frage

Ich benutze JSF RI 1.1. Wie kann ich die Seite zur Index -Seite umleiten, wenn die Sitzungszeitauszeit stattfindet?

War es hilfreich?

Lösung

Es gibt zwei Möglichkeiten, die kombiniert werden können:

  1. Nutzen die <meta> Kopfball in der HTML aktualisieren <head> Element in Kombination mit HttpSession#getMaxInactiveInterval() Was den Rest von Sekunden zurückgibt, das die Sitzung noch nicht leben muss.

    <meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=index.jsf">
    

    Dieser Ansatz leitet die Seite automatisch auf die gegebenen url Wenn die Sitzung abläuft.

  2. Fang ViewExpiredException in web.xml:

    <error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/index.jsf</location>
    </error-page>
    

    Dieser Ansatz leitet die Anfrage automatisch an die gegebenen <location> Wenn ein POST Anfrage wurde abgefeuert (h:commandButton, h:commandLink, usw.) während die Sitzung abgelaufen ist.

Beachten Sie, dass ich persönlich eine Intermediate -Sitzung "abgelaufen" oder eine Warnseite oder eine Warnung bevorzugen würde, um "WTF" zu vermeiden? Erfahrungen und verbessern somit die Benutzererfahrung. Noch mehr, ich würde es auch vorziehen, eine ajaxische Umfrage in jeder Minute abzufeuern, wenn der Kunde Aktivitäten durch Zuhören gezeigt hat click und keypress, damit die Lebensdauer der Sitzung mehr verschoben werden kann.

Andere Tipps

Sie können a verwenden Filter Um die besondere Ausnahme zu fangen, die das Zeitüberschreitende anzeigen und von dort ausgeleitet werden.

JSF2:

<meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/index.xhtml"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top