2016-04-08 4 views
-2

私はjava/spring/jsf/jsp Webアプリケーションがあります。ユーザーはすべての必須フィールドを塗りつぶし、すべてのオプションを選択し、クリックはレポートを生成し、豆は仕事をし、データベースは情報を求められ、ユーザーは入力された情報に従って生成された「レポート」ページに送られます。私はそのページを保存する方法を探していますが、現在のページリンクのリンクの種類によって後からアクセスされます。これの一例は、情報を入力して保存し、共有可能なリンクを得ることができるjsfiddle.netかもしれません。

現在考えていることは、URL拡張ハッシュのいくつかの種類を、現在表示されているページプロパティと共にデータベースとクエリデータベースに保存して、誰かがwww.websiteUrl.com/extensionHashにアクセスしても毎回クエリを作成するときにその情報を取得することです誰かがエクステンションにアクセスするとパフォーマンスが重くなるようです。
もう一つの方法は、HTMLページ全体を保存することも、サーバー上のコンテンツ部分だけを保存して、後で要求に応じて配信することもできます。

これを行う最も単純で生産的な方法は何ですか? Javaで何ができるか共有のための現在のページビューを保存

は、アプリケーションの起動時にデータベースからそのレポートに必要なデータをロードすることができている、アプリケーションコンテキストにデータを置くこと(のServletContext:

+0

"重い"仮定を測定していないようですね。そうして、それに応じて質問を再作成してください。測定は知っている。通常、答えは「キャッシュ」です。質問には、使用されたDBやパーシスタンス層については何も言わないタグを付けました。 JPAは第2レベルのキャッシュをサポートしています。 – BalusC

+0

これは「行う方法」よりも「行う方法」です。私は私が記述した方法で私が望むものを達成することができることを知っていますが、より生産的な方法がありますか? 「データベーストランザクション対Javaコード」のトピックを読むと、データベースが常により遅く、生産性が低いという印象を与えました。 – eight

+1

これは、人々がキャッシュを発明した理由です。問題が本当にパーシスタンス層にある間は、UIレイヤーに重点を置いているようです。フォーカスを正しいターゲット(すべての問題の根本的な原因)に移動すると、すでに与えられている解決策/回答が見つかる可能性が高くなります。データベースのパフォーマンスは**「共有するために現在のページを保存する」とは全く関係ありません**。これは、SQLクエリが関与する他の想像をなすユースケースにも適用されます。 – BalusC

答えて

0

これは代わりに、リンクの一つの選択肢であります)、データベース呼び出しの代わりに情報を取得したい場合は、Application Contextから取得します(基本的にはキャッシュからロードしています)。これにより、パフォーマンスが改善されます。

javaで、これを達成するには、リスナークラスを実装します。

降格者:理由を明記してください。

+0

これは毎回データベースに当たってしまうという私の懸念を排除します。 downvotesを理解しないでください。 – eight

関連する問題