2011-08-12 4 views
1

私はカスタム検索アプリケーションを開発しています。ユーザによって入力されたクエリは、特定のクエリ用語を除去するために前処理される。削除の基準は、コーパス内のすべての用語について事前に計算されたスコアに基づいています。私は、用語とそのスコアをハッシュに格納することを考えています。ユーザがクエリを入力すると、ハッシュからタームの得点を得て、条件に応じてタームを削除することができます。JSPを使用する複数のクライアント要求の単一のグローバル変数

しかし、ハッシュが非常に大きいので、複数のクライアント要求に対して変数の1つのコピーだけがメモリ内にあるようにグローバル変数として持つことは可能ですか?私はindex.jspのグローバル変数としてそれを宣言することは、すべてのクライアントの要求のために別のコピーがメモリに作成されるため動作しませんと思います。

+0

あなたの質問は、パフォーマンスを向上させるためにキャッシュを利用する多層アプリケーションを開発しようとしていることを意味します。アプリケーションがより複雑な設計道路を下るようになると、a)開発とメンテナンスを容易にするための標準パターンを組み込み、b)自分で手作業でコードを作成する必要のある機能(キャッシングなど) )。あなたはサーブレットとJSPを使うことができますが、ホイールを何度も再作成する必要があります。 – atrain

答えて

2

application scopeに保存することができます。

application.setAttribute("someName", someObject); 

getAttribute()で再度取得できます。


このジョブがServletContextListener及び/又はHttpServletによってではなく、JSP内部で行われるべき正常であることに留意されたいです。 JSPでのJavaコードの記述は、貧弱な方法です。

0

シングルトンパターンを使用することもできます。それは一度だけ始まります。