Class PushCacheFilter
- All Implemented Interfaces:
javax.servlet.Filter
A filter that builds a cache of secondary resources associated to primary resources.
A typical request for a primary resource such as index.html
is immediately followed by a number of requests for secondary resources.
Secondary resource requests will have a Referer
HTTP header
that points to index.html
, which is used to associate the secondary
resource to the primary resource.
Only secondary resources that are requested within a (small) time period from the request of the primary resource are associated with the primary resource.
This allows to build a cache of secondary resources associated with
primary resources. When a request for a primary resource arrives, associated
secondary resources are pushed to the client, unless the request carries
If-xxx
header that hint that the client has the resources in its
cache.
If the init param useQueryInKey is set, then the query string is used as as part of the key to identify a resource
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private final ConcurrentMap
<String, PushCacheFilter.PrimaryResource> private int
private long
private boolean
private static final Logger
-
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
LOG
-
_ports
-
_hosts
-
_cache
-
_associatePeriod
private long _associatePeriod -
_maxAssociations
private int _maxAssociations -
_renew
private long _renew -
_useQueryInKey
private boolean _useQueryInKey
-
-
Constructor Details
-
PushCacheFilter
public PushCacheFilter()
-
-
Method Details
-
init
public void init(javax.servlet.FilterConfig config) throws javax.servlet.ServletException - Specified by:
init
in interfacejavax.servlet.Filter
- Throws:
javax.servlet.ServletException
-
doFilter
public void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse resp, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException - Specified by:
doFilter
in interfacejavax.servlet.Filter
- Throws:
IOException
javax.servlet.ServletException
-
destroy
public void destroy()- Specified by:
destroy
in interfacejavax.servlet.Filter
-
getPushCache
-
renewPushCache
@ManagedOperation(value="Renews the push cache contents", impact="ACTION") public void renewPushCache() -
clearPushCache
@ManagedOperation(value="Clears the push cache contents", impact="ACTION") public void clearPushCache()
-