org.apache.cocoon.acting
Class HttpCacheAction
java.lang.Object
org.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.acting.AbstractAction
org.apache.cocoon.acting.AbstractConfigurableAction
org.apache.cocoon.acting.HttpCacheAction
- All Implemented Interfaces:
- Component, Configurable, LogEnabled, ThreadSafe, Action
public class HttpCacheAction
- extends AbstractConfigurableAction
- implements ThreadSafe
This action adds the Last-Modified
, Expires
and
Cache-Control
HTTP headers to the response.
This action will add the Last-Modified
header to the response
with the time in which the request was executed, and an Expires
header at a specified time difference. Additionally, it will provide an
extra Cache-Control
indicating the maximum age of the request
as a delta between the expiration and last modification dates.
This is useful (for example) when Cocoon is proxyied by a Web Server such
as Apache HTTPD running mod_cache, to indicate for each request how long
the output should be cached for.
To configure the difference between Last-Modified
and
Expires
this Action
can be configured specifying
days, hours, minutes, and seconds in this way:
<map:action>s
<map:action name="xyz" src="org.apache.cocoon.acting.HttpCacheAction>"
<days>1</day>s
<hours>2</hour>s
<minutes>3</minute>s
<seconds>4</second>s
</map:actio>n
</map:action>s
Using this example configuration, the Expires
header will
specify a date one day, two hours, three minutes and four seconds after
the time of the request (which will be in Last-Modified
).
Note that if any of the parameters mentioned above is zero or
less than zero this action will modify the behaviour of the
resulting Cache-Control
header to emit the keyword
no-cache
.
This action will also return the three headers it added as sitemap
parameters called last-modified
, expires
and
cache-control
(all lowercase).
- Version:
- CVS $Id: HttpCacheAction.html 1304258 2012-03-23 10:09:27Z ilgrosso $
- Author:
- Pier Fumagalli
Fields inherited from interface org.apache.cocoon.acting.Action |
ROLE |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HttpCacheAction
public HttpCacheAction()
configure
public void configure(Configuration configuration)
throws ConfigurationException
- Description copied from class:
AbstractConfigurableAction
- Configures the Action.
Takes the children from the
Configuration
and stores them
them as key (configuration name) and value (configuration value)
in settings
.
This automates parsing of flat string-only configurations.
For nested configurations, override this function in your action.
- Specified by:
configure
in interface Configurable
- Overrides:
configure
in class AbstractConfigurableAction
- Throws:
ConfigurationException
act
public Map act(Redirector redirector,
SourceResolver resolver,
Map objectModel,
String source,
Parameters parameters)
throws Exception
- Description copied from interface:
Action
- Controls the processing against some values of the
Dictionary
objectModel and returns a
Map
object with values used in subsequent
sitemap substitution patterns.
NOTE: This interface is designed so that implentations can be ThreadSafe.
When an action is ThreadSafe, only one instance serves all requests : this
reduces memory usage and avoids pooling.
- Specified by:
act
in interface Action
resolver
- The SourceResolver
in chargeobjectModel
- The Map
with object of the
calling environment which can be used
to select values this controller may need
(ie Request, Response).source
- A source String
to the Actionparameters
- The Parameters
for this invocation
- Returns:
- Map The returned
Map
object with
sitemap substitution values which can be used
in subsequent elements attributes like src=
using a xpath like expression: src="mydir/{myval}/foo"
If the return value is null the processing inside
the element of the sitemap will
be skipped.
- Throws:
Exception
- Indicates something is totally wrong
Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.