この例は、cachespec.xml ファイルを使用して動的キャッシュ・サービスを構成するためのすべてのステップをまとめたもので、 キャッシュ ID 生成規則、依存関係 ID、および無効化規則の使用について示します。
サーブレットが簡単なニュース・サイトを管理していると仮定します。このサーブレットは、照会パラメーター「action」を使用して、 その要求がニュースを表示 (照会パラメーター「view」)、あるいはニュースを更新 (照会パラメーター「update」) するのかを判別します (管理者が使用)。 別の照会パラメーター「category」を使用して、ニュースのカテゴリー を選択します。 このサイトでは、 オプションのカスタマイズされたレイアウトがサポートされており、 これは、「layout」という属性名を使用して、 ユーザーのセッションに保管されているものとします。 このサーブレットに対する URL 要求例は、以下のとおりです。
http://yourhost/yourwebapp/newscontroller?action=view&category=sports (スポーツ・カテゴリーのニュース・ページを戻す)
http://yourhost/yourwebapp/newscontroller?action=view&category=money (金融カテゴリーのニュース・ページを戻す)
http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (管理者がファッション・カテゴリーのニュースを更新できるようにする)
cachespec.xml ファイルを使用して、この例の動的キャッシュ・サービスを構成するためのステップは以下のとおりです。
<cache-entry> <name> /newscontroller </name> <class>servlet</class> </cache-entry>
<cache-entry> <name> /newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> </cache-entry>
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> </cache-entry>
<cache-entry> <name>newscontroller </name> <class>servlet </class> <cache-id> <component id="action" type="parameter"> <value>view</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> <component id="layout" type="session"> <required>false</required> </component> </cache-id> <dependency-id>category <component id="category" type="parameter"> <required>true</required> </component> </dependency-id> <invalidation>category <component id="action" type="parameter" ignore-value="true"> <value>update</value> <required>true</required> </component> <component id="category" type="parameter"> <required>true</required> </component> </invalidation> </cache-entry>