2016-05-24 17 views
0

サーブレットからXMLファイルに格納されている設定データを読み込んでいるWebアプリケーションを作成しています。私はこのサーブレットから読み込まれたデータを、このサーブレットに来るすべてのリクエストで利用できるようにしたい。したがって、このサーブレットのinit()メソッドの内部では、グローバル変数を初期化しています。この変数は、このXMLファイルから読み取られたコンテンツを持ち、このサーブレットに送られるすべてのリクエストはこのデータを利用でき、xmlファイル何回も何回も。サーブレットからプロパティファイルのデータを読み取る

私の最初の質問は、この方法は、このサーブレットだけに来る要求の間でデータを共有する方が良いかどうかです。私はすべてのサーブレットで共有したくありません。

+0

つ以上の単一のサーバによって提供されることを意図している場合、あなたはまだ余分な同期mechanismeが必要になります。 – BalusC

+0

@BalusCあなたのコメント – KItis

答えて

1

ルールここだけの局所性がある。そのデータは、ただ1つのサーブレットで使用されている場合、それはあなたの提案どおりの意味、サーブレットに対してローカルである必要があります。

  • サーブレットクラスのメンバー
  • は(あなたの最初の記事は尋ねたとして)

サーブレットのinit方法でロードされた。しかし、データが同じWebアプリケーションの別のサーブレットによってを更新することができた場合、それは私を移動しても意味がSerletContext属性まで1ステップアップする。その方法:

  • が、それはまだ、最初はそれが属性の名前を知っているWebアプリケーションの他のコンポーネントにより、いつでも変更することができますサーブレット
  • init方法でロードすることができます。

あなたは、サンプルのカスタムイベントのために使用して観察できるパターンを用いて、またはXMLファイルを再ロードする必要があることを知らせるでしょう特殊な(および民間)URLにサーブレットをマッピングすることで、他の方法の多くを想像することができますしかしIMHOでは、サーブレットコンテキスト属性は、異なるサーブレットが情報を交換できるようにするきれいで簡単な方法です。

しかしを注意してくださいあなたのWebアプリケーションは、あなたが質問ごとに質問をする場合は、より良い作品質問を

+0

の通りに質問を編集しました。すばらしいです! – KItis

関連する問題