public abstract class

WebContentGenerator

extends WebApplicationObjectSupport
java.lang.Object
   ↳ org.springframework.context.support.ApplicationObjectSupport
     ↳ org.springframework.web.context.support.WebApplicationObjectSupport
       ↳ org.springframework.web.servlet.support.WebContentGenerator
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Convenient superclass for any kind of web content generator, like AbstractController and WebContentInterceptor. Can also be used for custom handlers that have their own HandlerAdapter.

Supports HTTP cache control options. The usage of corresponding HTTP headers can be controlled via the "useExpiresHeader", "useCacheControlHeader" and "useCacheControlNoStore" properties.

Summary

Constants
String METHOD_GET HTTP method "GET"
String METHOD_HEAD HTTP method "HEAD"
String METHOD_POST HTTP method "POST"
[Expand]
Inherited Fields
From class org.springframework.context.support.ApplicationObjectSupport
Public Constructors
WebContentGenerator()
Create a new WebContentGenerator which supports HTTP methods GET, HEAD and POST by default.
WebContentGenerator(boolean restrictDefaultSupportedMethods)
Create a new WebContentGenerator.
WebContentGenerator(String... supportedMethods)
Create a new WebContentGenerator.
Public Methods
final int getCacheSeconds()
Return the number of seconds that content is cached.
final String[] getSupportedMethods()
Return the HTTP methods that this content generator supports.
final boolean isRequireSession()
Return whether a session is required to handle requests.
final boolean isUseCacheControlHeader()
Return whether the HTTP 1.1 cache-control header is used.
final boolean isUseCacheControlNoStore()
Return whether the HTTP 1.1 cache-control header value "no-store" is used.
final boolean isUseExpiresHeader()
Return whether the HTTP 1.0 expires header is used.
final void setCacheSeconds(int seconds)
Cache content for the given number of seconds.
final void setRequireSession(boolean requireSession)
Set whether a session should be required to handle requests.
final void setSupportedMethods(String[] methods)
Set the HTTP methods that this content generator should support.
final void setUseCacheControlHeader(boolean useCacheControlHeader)
Set whether to use the HTTP 1.1 cache-control header.
final void setUseCacheControlNoStore(boolean useCacheControlNoStore)
Set whether to use the HTTP 1.1 cache-control header value "no-store" when preventing caching.
final void setUseExpiresHeader(boolean useExpiresHeader)
Set whether to use the HTTP 1.0 expires header.
Protected Methods
final void applyCacheSeconds(HttpServletResponse response, int seconds, boolean mustRevalidate)
Apply the given cache seconds and generate respective HTTP headers.
final void applyCacheSeconds(HttpServletResponse response, int seconds)
Apply the given cache seconds and generate corresponding HTTP headers, i.e.
final void cacheForSeconds(HttpServletResponse response, int seconds, boolean mustRevalidate)
Set HTTP headers to allow caching for the given number of seconds.
final void cacheForSeconds(HttpServletResponse response, int seconds)
Set HTTP headers to allow caching for the given number of seconds.
final void checkAndPrepare(HttpServletRequest request, HttpServletResponse response, int cacheSeconds, boolean lastModified)
Check and prepare the given request and response according to the settings of this generator.
final void checkAndPrepare(HttpServletRequest request, HttpServletResponse response, boolean lastModified)
Check and prepare the given request and response according to the settings of this generator.
final void preventCaching(HttpServletResponse response)
Prevent the response from being cached.
[Expand]
Inherited Methods
From class org.springframework.web.context.support.WebApplicationObjectSupport
From class org.springframework.context.support.ApplicationObjectSupport
From class java.lang.Object
From interface org.springframework.context.ApplicationContextAware
From interface org.springframework.web.context.ServletContextAware

Constants

public static final String METHOD_GET

HTTP method "GET"

Constant Value: "GET"

public static final String METHOD_HEAD

HTTP method "HEAD"

Constant Value: "HEAD"

public static final String METHOD_POST

HTTP method "POST"

Constant Value: "POST"

Public Constructors

public WebContentGenerator ()

Create a new WebContentGenerator which supports HTTP methods GET, HEAD and POST by default.

public WebContentGenerator (boolean restrictDefaultSupportedMethods)

Create a new WebContentGenerator.

Parameters
restrictDefaultSupportedMethods true if this generator should support HTTP methods GET, HEAD and POST by default, or false if it should be unrestricted

public WebContentGenerator (String... supportedMethods)

Create a new WebContentGenerator.

Parameters
supportedMethods the supported HTTP methods for this content generator

Public Methods

public final int getCacheSeconds ()

Return the number of seconds that content is cached.

public final String[] getSupportedMethods ()

Return the HTTP methods that this content generator supports.

public final boolean isRequireSession ()

Return whether a session is required to handle requests.

public final boolean isUseCacheControlHeader ()

Return whether the HTTP 1.1 cache-control header is used.

public final boolean isUseCacheControlNoStore ()

Return whether the HTTP 1.1 cache-control header value "no-store" is used.

public final boolean isUseExpiresHeader ()

Return whether the HTTP 1.0 expires header is used.

public final void setCacheSeconds (int seconds)

Cache content for the given number of seconds. Default is -1, indicating no generation of cache-related headers.

Only if this is set to 0 (no cache) or a positive value (cache for this many seconds) will this class generate cache headers.

The headers can be overwritten by subclasses, before content is generated.

public final void setRequireSession (boolean requireSession)

Set whether a session should be required to handle requests.

public final void setSupportedMethods (String[] methods)

Set the HTTP methods that this content generator should support.

Default is GET, HEAD and POST for simple form controller types; unrestricted for general controllers and interceptors.

public final void setUseCacheControlHeader (boolean useCacheControlHeader)

Set whether to use the HTTP 1.1 cache-control header. Default is "true".

Note: Cache headers will only get applied if caching is enabled (or explicitly prevented) for the current request.

public final void setUseCacheControlNoStore (boolean useCacheControlNoStore)

Set whether to use the HTTP 1.1 cache-control header value "no-store" when preventing caching. Default is "true".

public final void setUseExpiresHeader (boolean useExpiresHeader)

Set whether to use the HTTP 1.0 expires header. Default is "true".

Note: Cache headers will only get applied if caching is enabled (or explicitly prevented) for the current request.

Protected Methods

protected final void applyCacheSeconds (HttpServletResponse response, int seconds, boolean mustRevalidate)

Apply the given cache seconds and generate respective HTTP headers.

That is, allow caching for the given number of seconds in the case of a positive value, prevent caching if given a 0 value, else do nothing (i.e. leave caching to the client).

Parameters
response the current HTTP response
seconds the (positive) number of seconds into the future that the response should be cacheable for; 0 to prevent caching; and a negative value to leave caching to the client.
mustRevalidate whether the client should revalidate the resource (typically only necessary for controllers with last-modified support)

protected final void applyCacheSeconds (HttpServletResponse response, int seconds)

Apply the given cache seconds and generate corresponding HTTP headers, i.e. allow caching for the given number of seconds in case of a positive value, prevent caching if given a 0 value, do nothing else. Does not tell the browser to revalidate the resource.

Parameters
response current HTTP response
seconds positive number of seconds into the future that the response should be cacheable for, 0 to prevent caching

protected final void cacheForSeconds (HttpServletResponse response, int seconds, boolean mustRevalidate)

Set HTTP headers to allow caching for the given number of seconds. Tells the browser to revalidate the resource if mustRevalidate is true.

Parameters
response the current HTTP response
seconds number of seconds into the future that the response should be cacheable for
mustRevalidate whether the client should revalidate the resource (typically only necessary for controllers with last-modified support)

protected final void cacheForSeconds (HttpServletResponse response, int seconds)

Set HTTP headers to allow caching for the given number of seconds. Does not tell the browser to revalidate the resource.

Parameters
response current HTTP response
seconds number of seconds into the future that the response should be cacheable for

protected final void checkAndPrepare (HttpServletRequest request, HttpServletResponse response, int cacheSeconds, boolean lastModified)

Check and prepare the given request and response according to the settings of this generator. Checks for supported methods and a required session, and applies the given number of cache seconds.

Parameters
request current HTTP request
response current HTTP response
cacheSeconds positive number of seconds into the future that the response should be cacheable for, 0 to prevent caching
lastModified if the mapped handler provides Last-Modified support
Throws
ServletException if the request cannot be handled because a check failed

protected final void checkAndPrepare (HttpServletRequest request, HttpServletResponse response, boolean lastModified)

Check and prepare the given request and response according to the settings of this generator. Checks for supported methods and a required session, and applies the number of cache seconds specified for this generator.

Parameters
request current HTTP request
response current HTTP response
lastModified if the mapped handler provides Last-Modified support
Throws
ServletException if the request cannot be handled because a check failed

protected final void preventCaching (HttpServletResponse response)

Prevent the response from being cached. See http://www.mnot.net/cache_docs.