2011-02-09 16 views
1

サーブレットにいくつかのグローバル変数があります。個々のサーブレットセッションは、これらの変数を読み書きします。それらはデータベースに投稿された値を調整するために使用されるので、セッションが同期していることが重要です。私の質問は、これらのグローバル変数で、異なるサーブレットセッションが互いに衝突するのを防ぐために、サーブレットとキーワードを同期させることですか? サーブレット内のグローバル変数の同期化

は、私は、サーブレットクラス自体にこのようなものをやっていないお勧めします

+2

あなたが達成したいことを記述すると良いでしょう。私はセッションの個々の要求を混合していると感じています。 –

答えて

2

、ありがとうございます。あなたのサーブレットのdoGet()などは、実際の作業を行うために別のオブジェクトを呼び出します。このデリゲートされたクラスがシングルトンの場合、初期化、状態などを完全に制御できます。

アプリケーションサーバーがサーブレットクラス自体をロードする方法に依存すると、脆くなる可能性があります。特定の動作に依存するのではなく、サーブレットが好きなときにサーブレットをクラスロード/共有できるようにするのがベストです。

+0

代替は、セッション変数(同期メソッド内で変更されたもの)またはmemcached(同期メソッド内で適用された変更)です。 – stivlo

関連する問題