私はJ(2)EEとWebアプリケーション開発の世界では初めてですが、その周りを素早くナビゲートし、多くのことを学びます。毎日私にとって新しい発見の素晴らしい航海です。JSFのセッションにデータを保存する
私は現在、Glassfish v2でVisual JSF Woodstockを使用しているプロジェクトに取り組んでいます。私はJSFもかなり新しいです。
リクエスト間にいくつかのオブジェクト(MyObjectなど)を保存する必要があることがあります。これまでに読んで理解してきたことから、これらのオブジェクトをさまざまな要求の間に保存するためにセッションを使用する必要があります。ここまでは順調ですね。
これを行う方法は、私の懸念がある場所です。 JSPで、クッキーやURLの書き換えや隠れたフォーム変数を使ってクライアント側でオブジェクトを保存するsession.setAttribute("myObj", myObject)
を使うことができます。
一方、JSFではセッションスコープのBean、たとえばSessionBean1をSessionBean1プロパティ(例:SessionBean1.setSomeOjb(myObj)
)として使用します。これは正しいことですか?
私は、各リクエストがセッションスコープ付きBeanの新しいインスタンス、SessionBean1とSessionBean1内の保存されたmyObjectインスタンスによって利用されるメモリを作成するため、サーバー側でメモリ使用率が向上すると推測しています。
FacesContext.getExternalContext().getSession/getSessionMap()
を使用すると、クライアント側でセッション変数を保存できることがわかりました。
セッションのスコープ付きBeanまたはセッションの要求間のアクセスにオブジェクトを保存するセッションマップを使用することをお勧めしますか?
ありがとうございました。
"リクエストごとにセッションスコープBeanの新しいインスタンスが作成されます"これは完全に間違っています –