2009-06-26 9 views
0

現在、JSP/ServletとStrutsフレームワークを使用しているWebプロジェクトに取り組んでいます。私たちはキャッシュメカニズムを使用しています。私は、特定のイベントのすべてのアクティブセッションからセッション属性の一部を消去したい(たとえば、キャッシュをリフレッシュする場合など)。だから同じものを実装する最良の方法は何ですか?javaのすべてのアクティブなセッションからセッション属性を消去する方法は?

答えて

1

アクティブセッションを追跡し、その情報を使用してセッションへのアクセスを取得し、属性の更新を実行できます。効果的に実装クラスはシングルトンになるので、セッショントラッキング中に同期の問題を注意深く扱わなければなりません。

もちろん、複数のノードを持つクラスタ環境を使用している場合、属性変更の伝播はかなり複雑な場合があります。

4

キャッシュからの値をセッション変数に保存していると思いますか?

これを行う最もクリーンな方法は、必要なときにキャッシュから値を取得し、キャッシュに期限切れ/リロードなどを管理させることです。これはキャッシュの責任です。

つまり、キャッシュからの値をセッションオブジェクトに格納しないでください。あなたがキャッシュを使用しているときは、目的を果たせません。あなたはHttpSessionActivationListenerを実装するクラス(サーバーAPIの一部)インターフェイスを提供し、web.xmlにそれを登録する必要があります

乾杯

関連する問題