0

JSFバッキングBeanスコープについて誤解があります。私はJSFを初めて使用し、単純なプロジェクトを作成しています。ほとんどのBeanにはセッションスコープがあります。しかし、私のサイトに多くのユーザーがいる場合、それは私のセッションが非常に大きくなり、サーバーを強制終了することを意味します。解決策はリクエストスコープBeanを使用することだと言う人もいます。しかし、たとえば、私のページを検証する必要があり、検証が失敗した場合、エラーメッセージを表示し、すべてのユーザー入力を保存する場合、この状況で何ができますか?AJAX-requestを使用するコンポーネントを使用しようとしていますが、リクエストBeanが再構築されないことを期待していますが、これは機能しません(使用しています<rich:datascroller>)。

私はJSFの理解に大きな穴があると思います。誰かがこの状況で私がしなければならないことを説明したり、Beanスコープに関するいくつかの良い記事にリンクしてくれたらありがたいです。

4

1 に答える 1

2

スコープは、Beanの存続期間を定義します。

リクエストスコープBeanは、1つのHTTPリクエストの処理中に存続するため、ユーザーの入力を分析し、応答ページを作成するときに利用できます。したがって、単純な検証と応答のために、リクエストスコープのBeanが必要なものであると期待します。例外は、おそらくブラウザにリダイレクトを送り返し、新しいリクエストを送信する場合です。

セッションスコープのBeanは、ユーザーのセッションの存続期間中、つまり、存続します。いくつかのリクエストにわたって。セッションはしばらく続く可能性がありますが、最終的にユーザーはログアウトするか、静止状態になり、セッションがタイムアウトになります。したがって、全体で何人のユーザーがいるかは関係ありません。一度にアクティブなユーザーの数だけです。各ユーザーのセッションデータを保持することは非常に一般的であるため(少なくとも誰であるか、おそらく最近表示されたものなど)、保持されるデータについて心配する基本的な理由はありません。整理整頓する必要があります。古いページのデータをあまり長く保持しないでください。おそらく、「現在のデータ」B​​eanなどです。

于 2009-07-17T12:41:48.527 に答える