org.apache.cocoon.acting
Class HttpCacheAction

java.lang.Object
  extended byorg.apache.cocoon.util.AbstractLogEnabled
      extended byorg.apache.cocoon.acting.AbstractAction
          extended byorg.apache.cocoon.acting.AbstractConfigurableAction
              extended byorg.apache.cocoon.acting.HttpCacheAction
All Implemented Interfaces:
org.apache.cocoon.acting.Action, Configurable, ThreadSafe

public class HttpCacheAction
extends org.apache.cocoon.acting.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:
$Id: HttpCacheAction.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Field Summary
 
Fields inherited from class org.apache.cocoon.acting.AbstractConfigurableAction
settings
 
Fields inherited from class org.apache.cocoon.acting.AbstractAction
EMPTY_MAP
 
Fields inherited from interface org.apache.cocoon.acting.Action
ROLE
 
Constructor Summary
HttpCacheAction()
           
 
Method Summary
 Map act(org.apache.cocoon.environment.Redirector redirector, org.apache.cocoon.environment.SourceResolver resolver, Map objectModel, String source, Parameters parameters)
           
 void configure(Configuration configuration)
           
 
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled
getLogger, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HttpCacheAction

public HttpCacheAction()
Method Detail

configure

public void configure(Configuration configuration)
               throws ConfigurationException
Specified by:
configure in interface Configurable
Throws:
ConfigurationException

act

public Map act(org.apache.cocoon.environment.Redirector redirector,
               org.apache.cocoon.environment.SourceResolver resolver,
               Map objectModel,
               String source,
               Parameters parameters)
        throws Exception
Specified by:
act in interface org.apache.cocoon.acting.Action
Throws:
Exception


Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.