So leiten Sie die Indexseite um, wenn die Sitzungszeit in der JSF -Anwendung stattgefunden hat
-
23-09-2019 - |
Frage
Ich benutze JSF RI 1.1. Wie kann ich die Seite zur Index -Seite umleiten, wenn die Sitzungszeitauszeit stattfindet?
Lösung
Es gibt zwei Möglichkeiten, die kombiniert werden können:
Nutzen die
<meta>
Kopfball in der HTML aktualisieren<head>
Element in Kombination mitHttpSession#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.Fang
ViewExpiredException
inweb.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 einPOST
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"/>