JSFアプリケーションでセッションタイムアウトが発生した場合にインデックスページにリダイレクトする方法
-
23-09-2019 - |
質問
JSF RI 1.1を使用しています。セッションタイムアウトが発生した場合、インデックスページにリダイレクトする方法
解決
組み合わせることができる2つの方法があります。
を使用します
<meta>
HTMLでヘッダーを更新します<head>
と組み合わせた要素HttpSession#getMaxInactiveInterval()
セッションがまだ生きていない数秒の残骸を返します。<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=index.jsf">
このアプローチは、指定されたページを自動的にリダイレクトします
url
セッションが期限切れになったとき。キャッチ
ViewExpiredException
のweb.xml
:<error-page> <exception-type>javax.faces.application.ViewExpiredException</exception-type> <location>/index.jsf</location> </error-page>
このアプローチは、リクエストを与えられたものに自動的に転送します
<location>
aPOST
リクエストが起動されました(h:commandButton
,h:commandLink
, セッションの有効期限が切れている間。
個人的には、中間の「セッションの有効期限が切れた」警告ページを好むか、「WTF」を避けるためにアラートを好むことに注意してください。ユーザーエクスペリエンスを体験して改善します。さらに、クライアントが聞いてアクティビティを示したとき、私は毎分Ajaxical投票を発射することを好むでしょう click
と keypress
, 、セッションの生涯をさらに延期できるように。
他のヒント
使用できます Filter
タイムアウトを示す特定の例外をキャッチし、そこからリダイレクトします。
JSF2:
<meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/index.xhtml"/>
所属していません StackOverflow