1. 概要
Web アプリケーションでは、一部のレポートの生成にはデータベースの計算に時間がかかる場合があります。また、一部の Web サイトは気象情報を提供するため、温度情報を取得するためにリモート サーバーにアクセスして SOAP 呼び出しを行う必要があります。これらはすべて、複雑な情報の例です。 Web ページに複雑な情報を追加しすぎると、Web サーバーやデータベース サーバーに過負荷がかかる可能性があります。 jsp (SUN エンタープライズ レベル アプリケーションの最初の選択肢) (SUN エンタープライズ レベル アプリケーションの最初の選択肢) コード ブロック バッファリングにより、開発者はさまざまな複雑な情報を自由に追加できます。
jsp (SUN エンタープライズ レベル アプリケーションの最初の選択肢) (SUN エンタープライズ レベル アプリケーションの最初の選択肢) は、タグ ライブラリで複雑な Java コードをカプセル化して実行できます。これにより、jsp (SUN エンタープライズ レベル アプリケーションの最初の選択肢) になります。 (SUN エンタープライズ レベルのアプリケーションの最初の選択肢) ページ ファイルの保守が容易になり、プロ以外の開発者が jsp を使用するのがより便利になります (SUN エンタープライズ レベルのアプリケーションの最初の選択肢) (SUN エンタープライズ レベルのアプリケーションの最初の選択肢)レベルのアプリケーション) ページ ファイル。商用製品またはオープンソース製品のタグ ライブラリがすでに多数存在します。しかし、これらの製品のほとんどは、単純な Java Scriptlet で実装できる機能を実装するためにタグ ライブラリを使用するだけです。いくつかの製品は、jsp (SUN エンタープライズ レベル アプリケーション) を提供するために何らかの創造的な方法でカスタム タグを使用します。 SUN エンタープライズ レベル アプリケーション) のカスタム タグ ライブラリを実現することは、以前はほとんど不可能でした。
OSCache タグ ライブラリは OpenSymphony によって設計されており、既存の jsp(SUN エンタープライズ レベル アプリケーションの最初の選択) を使用する機能を提供する画期的な jsp(SUN エンタープライズ レベル アプリケーションの最初の選択) カスタム タグ アプリケーションです。 Choice)(SUN エンタープライズ レベルのアプリケーションの最初の選択肢) は、ページ内での高速メモリ バッファリングの機能を実現します。さまざまな形でキャッシュ製品を提供するベンダーがいくつかありますが、それらはすべてベンダー固有の製品です。 OSCache は、任意の jsp(SUN エンタープライズ レベル アプリケーションの最初の選択)(SUN エンタープライズ レベル アプリケーションの最初の選択) 1.1 互換サーバー上で実行できます。既存の jsp(SUN エンタープライズ レベル アプリケーションの最初の選択)(SUN エンタープライズ レベル アプリケーション)をキャッシュするだけではありません。 ) すべてのユーザー向け。アプリケーションの最初の選択肢) コード ブロックであり、ユーザーごとにバッファリングできます。 OSCache には、ディスクへのバッファリング、プログラム可能なバッファ フラッシュ、例外制御など、スケーラビリティを向上させるいくつかの高度な機能も含まれています。さらに、他の OpenSymphony 製品と同様に、OSCache のコードはオープン ソース ライセンスの下で自由に配布されます。
この記事では、架空のオークション Web サイトのデザインプロセスを例として、OSCache の作業プロセスを紹介します。この架空の Web サイトには、最近のオークション活動を報告する管理ページ、さまざまなプロモーション情報を含む完全に機能するホームページ、およびユーザーのすべての未決済のオークション活動に関する情報が含まれる特別なナビゲーション バーが含まれます。
2. 管理ページ
オークション Web サイトには管理レポートが含まれており、データベース サーバーがそのレポートを作成するのに数秒かかります。複数の管理者がシステムの動作を監視している可能性があり、管理者がアクセスするたびにレポートを再生成することは避けたいため、レポートの生成に時間がかかることが重要です。これを実現するには、ページ全体をアプリケーション レベルのバッファ タグにカプセル化し、1 時間ごとに更新します。他のベンダーの一部の製品にも同様の機能がありますが、OSCache の方が優れているというだけです。
わかりやすくするために、フォーマットの問題にはあまり焦点を当てません。管理ページを作成するときは、まずタグ ライブラリ宣言をページに追加します。
<%@ taglib uri="cachetags" prefix="cache" %>
次に、ページ全体をキャッシュ タグで囲む必要があります。キャッシュ タグのデフォルトのキャッシュ時間は 1 時間です。
<cache:cache> .... 複雑な管理レポート.... </cache:cache>
管理ページがキャッシュされました。管理者がページの生成後 1 時間以内に同じページに再度アクセスすると、以前にキャッシュされたページが表示されるため、データベース サーバーがこのレポートを再度生成する必要はありません。
3. ホーム ページ
オークション Web サイトのトップ ページには、Web サイトの活動が表示され、終了間近のオークションが宣伝されます。進行中のオークションの数、現在ログインしているユーザーの数、近い将来終了予定のオークションのリスト、および現在時刻を表示したいと考えています。これらのメッセージには、異なる時間精度要件があります。ウェブサイト上のオークションは通常数日間続くため、有効なオークション数をバッファする時間を 6 時間に設定できます。ユーザー数は明らかにより頻繁に変化しますが、ここではこの値を一度に 15 分間バッファーします。最後に、ページに表示される現在時刻が常にページにアクセスされた正確な時刻になるようにします。
ホーム ページでタグ ライブラリを宣言した後、まずバッファリングせずに現在の日付を直接出力します。
現在は次のようになります: <%=new java.util.Date()%>
次に、オークションに出品される日付のリストを表示します。短期で終了するもの:
<cache:cache> <ul> <% // 最新のオークションを含むイテレータを構築します。 Iterator Auctions = .... while (auctions.hasMore()) { Auction Auction = (Auction) Auctions .next(); %><li><%=auction%></li%< } %> </ul> </cache:cache>