動的キャッシュ用の DynamicContentProvider インターフェースの使用

このタスクを使用して、キャッシュに入れたサーブレットおよび JavaServer Pages (JSP) ファイルの DynamicContentProvider インターフェースを構成します。

始める前に

動的キャッシュ・サービスが使用可能にし、サーブレット・キャッシングを使用している必要があります。詳しくは、動的キャッシュ・サービスの使用およびサーブレット・キャッシングの構成を参照してください。

このタスクについて

キャッシュ可能なサーブレットまたは JavaServer Pages (JSP) ファイルには、 そのサーブレットまたは JSP のフラグメントに属さない応答の状態が含まれることがあります。 状態が変化すると、キャッシュに入れたサーブレットまたは JSP はキャッシュに無効になります。 com.ibm.websphere.servlet.cache.DynamicContentProvider インターフェースを使用して、フラグメントをキャッシュ可能にします。

DynamicContentProvider インターフェースを実装するサーブレットまたは JSP ファイルは、 ラッパー・レスポンス・オブジェクトで addDynamicContentProvider(DCP) メソッドを呼び出すことによって キャッシュ可能になるフラグメントでユーザー出口を追加することができます。 動的キャッシュがページをレンダリングすると、ユーザー出口を識別し 、動的コンテンツ・プロバイダーを呼び出し、レンダリングされたページに動的コンテンツを追加します。

手順

  1. com.ibm.websphere.servlet.cache.DynamicContentProvider インターフェースの実装クラスを提供します。 実装の例は、以下のとおりです。
    class DynamicContentProviderImpl implements com.ibm.websphere.servlet.cache.DynamicContentProvider {
    								DynamicContentProviderImpl() {}
    				
    								public void provideDynamicContent(HttpServletRequest request, OutputStream streamWriter)
               throws IOException {
    										String dynamicContent = System.currentTimeMillis();			
    										streamWriter.write(dynamicContent.getBytes());
    				}
    								public void provideDynamicContent(HttpServletRequest request, Writer streamWriter) 
               throws IOException {
    										String dynamicContent = System.currentTimeMillis();			
    										streamWriter.write(dynamicContent.toCharArray());
    				}
    			}
  2. ラッパー・レスポンス・オブジェクトで addDynamicContentProvider(DCP) メソッドを呼び出すことによって、 ユーザー出口をご使用のサーブレットまたは JSP ファイルに追加します。 次に例を挙げます。
    public class DCPServlet extends CacheTestCase {
    								public void performTest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    					out.println(“Testing the DCP feature begin ”+System.currentTimeMillis());
    										DynamicContentProvider dcp = new DynamicContentProviderImpl();
    										ServletCacheResponse scr = (ServletCacheResponse)(response);
    					scr.addDynamicContentProvider(dcp);
      					out.println("Testing the DCP feature end”+System.currentTimeMillis());
    				}
    			}

次のタスク

動的キャッシュを使用して実行できるその他のタスクについて詳しくは、タスクの概説: 動的キャッシュ・サービスの使用によるパフォーマンスの向上を参照してください。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdyn_dynamiccp
ファイル名:tdyn_dynamiccp.html