このタスクを使用して、キャッシュに入れたサーブレットおよび JavaServer Pages (JSP) ファイルの DynamicContentProvider インターフェースを構成します。
このタスクについて
キャッシュ可能なサーブレットまたは JavaServer Pages (JSP) ファイルには、
そのサーブレットまたは JSP のフラグメントに属さない応答の状態が含まれることがあります。
状態が変化すると、キャッシュに入れたサーブレットまたは JSP はキャッシュに無効になります。
com.ibm.websphere.servlet.cache.DynamicContentProvider インターフェースを使用して、フラグメントをキャッシュ可能にします。
DynamicContentProvider インターフェースをインプリメントするサーブレットまたは JSP ファイルは、
ラッパー応答オブジェクトで addDynamicContentProvider(DCP) メソッドを呼び出すことによって
キャッシュ可能になるフラグメントでユーザー出口を追加することができます。
動的キャッシュがページをレンダリングすると、ユーザー出口を識別し
、動的コンテンツ・プロバイダーを呼び出し、レンダリングされたページに動的コンテンツを追加します。
プロシージャー
- 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());
}
}
- ラッパー応答オブジェクトで 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());
}
}