私は、プライムフェイスを使用してJSFでログインベースのアプリケーションを開発しています。私はセッションスコープのマネージドビーンでログオンしたユーザー情報を保持していました。ログアウトしたときにその詳細をクリアする必要があります。そのため、SessionScoped ManagedBeanオブジェクトにある詳細をクリアするにはどうすればいいですか?セッションスコープのマネージドBeanのオブジェクトをクリアするには?
10
A
答えて
16
を役に立てば幸い
FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml");
それとも、単にあなたの方法からナビゲーション・ケースの結果を返します:
リダイレクトを送信してくださいreturn "login.xhtml?faces-redirect=true";
セッションを無効にしたくない場合は、セッションスコープのBeanを維持すること(私の意見では悪い習慣です)では、すべてのユーザーデータを無効にしてください1つのセッションスコープのマネージドBean)をログアウトします(ログアウトメソッドが別のセッションスコープBeanに存在する場合は、そのBeanを注入する必要があります)。
-2
すると、ユーザーのログアウト、セッションが破棄され、手動で管理対象BeanスコープのすべてのSessionScoped ManagedBeanがあまりにも
3
オブジェクトは、セッションをクリアする必要はありません。ユーザーセッションをクリアするだけです。 ログアウトのためにサーブレットで次のコードを使用します。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
System_Properties system_Properties=new System_Properties();
PrintWriter out = response.getWriter();
try {
request.getSession().invalidate();
}finally {
out.close();
}
}
管理対象Beanのデータを手動で消去する場合は、次のコードを使用してデータを削除できます。
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("managed_bean_name", null);
ここで、「mananged_bean_name」は管理対象Beanの名前です。セッションは、Beanは次の要求をburingゴミ箱に移動されているスコープとして、あること、また
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
:
は、あなたのアクションメソッドに次の関数を呼び出して、現在のセッションを無効にする必要があり、それは
関連する問題
- 1. 別のアプリケーションでセッションスコープのマネージドBeanを削除する
- 2. セッションスコープから@NamedマネージドBeanを取得する
- 3. Guiceサーブレットでセッションスコープのオブジェクトをクリアする
- 4. JSF - セッションスコープに管理対象Bean内の値をクリア
- 5. JSFマネージドBeanをCDIマネージドBeanに移行する
- 6. JSFのマネージドbean
- 7. JSF2.0マネージドBean間で値オブジェクトを渡す
- 8. jersey.servlet.ServletContainerマネージドBeanからSpringマネージドBeanを取得する方法?
- 9. マネージドBeanの置換
- 10. マネージドBean JSFプロジェクト
- 11. マネージドBeanとセッションBeanの違い
- 12. セッションスコープ管理BeanとステートフルBean対httpsession
- 13. アプリケーションスコープのマネージドBeanをリフレッシュ/再ロードする
- 14. JSFマネージドBeanコードアシストEclipse
- 15. @ManagedPropertyスコープエイリアス間のマネージドBean
- 16. JSFマネージドBeanのJavaScriptオブジェクトを渡す方法
- 17. 別のManagedBeanでセッションスコープBeanデータを取得
- 18. リクエストスコープのCDI BeanからセッションスコープのCDI Beanへのアクセスを取得
- 19. マネージドBeanのリソースバンドルプロパティを読み取る
- 20. JSF 2:フェーズ・リスナー・オブジェクトのマネージドBeanのインスタンスへのアクセス?
- 21. JSF 1つのマネージドBeanから別のマネージドBeanへの値を引数として取得する
- 22. セッションスコープのBeanをスレッドに自動バインドする(Spring)
- 23. session.invalidate()はJSFセッションスコープの値を実際にはクリアしません
- 24. sessionscopedマネージドBeanとステートフルejb
- 25. GenericFacesPortletからセッションスコープBeanを取得
- 26. CDIマネージドBeanのメソッドに関するアノテーションを取得する
- 27. JSFアプリケーションスコープのマネージドBeanの注入
- 28. JSF 1.2マネージドBeanの@PersistenceContextの意味
- 29. ページ上のEclipseマネージドBeanのバインド
- 30. アーキテクチャ上の問題マネージドBeanの使用
"ログアウト"は定義ごとに "セッションが破棄されました"ではありません。しかし、他の方法は、通常は本当にです。 – BalusC
私は同意しません。ログアウトは、通常の「セッション無効化」を意味します。それはベストプラクティスであり、共通のパターンです。セッションを破棄しないと、セキュリティの問題 –
が生成されます。そうであれば、OPは最初にこの質問をしませんでした:) – BalusC