net.sf.ehcache.constructs.web.filter

Class SimplePageFragmentCachingFilter

public class SimplePageFragmentCachingFilter extends PageFragmentCachingFilter

A simple page fragment CachingFilter suitable for most uses.

It uses a Singleton CacheManager created with the default factory method. Override to use a different CacheManager

The meaning of page fragment is:

For full page see SimplePageCachingFilter.

Keys

Pages are cached based on their key. The key for this cache is the URI followed by the query string. An example is /admin/SomePage.jsp?id=1234&name=Beagle.

This key technique is suitable for a wide range of uses. It is independent of hostname and port number, so will work well in situations where there are multiple domains which get the same content, or where users access based on different port numbers.

A problem can occur with tracking software, where unique ids are inserted into request query strings. Because each request generates a unique key, there will never be a cache hit. For these situations it is better to parse the request parameters and override calculateKey with an implementation that takes account of only the significant ones.

Configuring Caching with ehcache

A cache entry in ehcache.xml should be configured with the name NAME.

Cache attributes including expiry are configured per cache name. To specify a different behaviour simply subclass, specify a new name and create a separate cache entry for it.

Gzipping

Page fragments should never be gzipped.

Page fragments are stored in the cache ungzipped.

Version: $Id: SimplePageFragmentCachingFilter.java 161 2006-07-29 20:35:28Z gregluck $

Author: Greg Luck

Field Summary
static StringNAME
This filter's name
Method Summary
protected StringcalculateKey(HttpServletRequest httpRequest)
CachingFilter works off a key.
protected CacheManagergetCacheManager()
Gets the CacheManager for this CachingFilter.
protected StringgetCacheName()
Returns the name of the cache to use for this filter.

Field Detail

NAME

public static final String NAME
This filter's name

Method Detail

calculateKey

protected String calculateKey(HttpServletRequest httpRequest)
CachingFilter works off a key.

This test implementation has a single key.

Parameters: httpRequest

Returns: the key, generally the URL plus request parameters

getCacheManager

protected CacheManager getCacheManager()
Gets the CacheManager for this CachingFilter. It is therefore up to subclasses what CacheManager to use.

This method was introduced in ehcache 1.2.1. Older versions used a singleton CacheManager instance created with the default factory method.

Returns: the CacheManager to be used

Since: 1.2.1

getCacheName

protected String getCacheName()
Returns the name of the cache to use for this filter.