JSFアプリケーションでセッションタイムアウトが発生した場合にインデックスページにリダイレクトする方法

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

  •  23-09-2019
  •  | 
  •  

質問

JSF RI 1.1を使用しています。セッションタイムアウトが発生した場合、インデックスページにリダイレクトする方法

役に立ちましたか?

解決

組み合わせることができる2つの方法があります。

  1. を使用します <meta> HTMLでヘッダーを更新します <head> と組み合わせた要素 HttpSession#getMaxInactiveInterval() セッションがまだ生きていない数秒の残骸を返します。

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

    このアプローチは、指定されたページを自動的にリダイレクトします url セッションが期限切れになったとき。

  2. キャッチ ViewExpiredExceptionweb.xml:

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

    このアプローチは、リクエストを与えられたものに自動的に転送します <location> a POST リクエストが起動されました(h:commandButton, h:commandLink, セッションの有効期限が切れている間。

個人的には、中間の「セッションの有効期限が切れた」警告ページを好むか、「WTF」を避けるためにアラートを好むことに注意してください。ユーザーエクスペリエンスを体験して改善します。さらに、クライアントが聞いてアクティビティを示したとき、私は毎分Ajaxical投票を発射することを好むでしょう clickkeypress, 、セッションの生涯をさらに延期できるように。

他のヒント

使用できます Filter タイムアウトを示す特定の例外をキャッチし、そこからリダイレクトします。

JSF2:

<meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/index.xhtml"/>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top