SPR-7116 - javadocs
This commit is contained in:
parent
af0fac9099
commit
c1246d506c
|
|
@ -37,7 +37,23 @@ import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
|
|||
* {@link HttpRequestHandler} that serves static resources optimized for superior browser performance
|
||||
* (according to the guidelines of Page Speed, YSlow, etc.) by adding far future cache expiration headers.
|
||||
*
|
||||
* <p>TODO - expand the docs further
|
||||
* <p>The constructor takes a list of Spring {@link Resource} locations from which static resources are allowed
|
||||
* to be served by this handler. For a given request, the list of locations will be consulted in order for the
|
||||
* presence of the requested resource, and the first found match will be written to the response, with {@code
|
||||
* Expires} and {@code Cache-Control} headers set for one year in the future. The handler also properly evaluates
|
||||
* the {@code Last-Modified} header (if present) so that a {@code 304} status code will be returned as appropriate,
|
||||
* avoiding unnecessary overhead for resources that are already cached by the client. The use of {@code Resource}
|
||||
* locations allows resource requests to easily be mapped to locations other than the web application root. For
|
||||
* example, resources could be served from a classpath location such as "classpath:/META-INF/public-web-resources/",
|
||||
* allowing convenient packaging and serving of resources such as a JavaScript library from within jar files.
|
||||
*
|
||||
* <p>To ensure that users with a primed browser cache get the latest changes to application-specific resources
|
||||
* upon deployment of new versions of the application, it is recommended that a version string is used in the URL
|
||||
* mapping pattern that selects this handler. Such patterns can be easily parameterized using Spring EL. See the
|
||||
* reference manual for further examples of this approach.
|
||||
*
|
||||
* <p>Rather than being directly configured as a bean, this handler will typically be configured through use of
|
||||
* the <code><mvc:resources/></code> Spring configuration tag.
|
||||
*
|
||||
* @author Keith Donald
|
||||
* @author Jeremy Grelle
|
||||
|
|
@ -53,12 +69,28 @@ public class ResourceHttpRequestHandler implements HttpRequestHandler, ServletCo
|
|||
|
||||
private FileMediaTypeMap fileMediaTypeMap;
|
||||
|
||||
/**
|
||||
* Construct a new {@code ResourceHttpRequestHandler} with a {@code List} of {@code Resource} paths to use as
|
||||
* sources for serving static resources.
|
||||
* @param resourcePaths the list of paths from which resources can be served
|
||||
*/
|
||||
public ResourceHttpRequestHandler(List<Resource> resourcePaths) {
|
||||
Assert.notNull(resourcePaths, "Resource paths must not be null");
|
||||
validateResourcePaths(resourcePaths);
|
||||
this.resourcePaths = resourcePaths;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes a resource request.
|
||||
*
|
||||
* <p>Checks for the existence of the requested resource in the configured list of locations. If the resource
|
||||
* does not exist, a {@code 404} response will be returned to the client. If the resource exists, the request will
|
||||
* be checked for the presence of the {@code Last-Modified} header, and its value will be compared against the last
|
||||
* modified timestamp of the given resource, returning a {@code 304} status code if the {@code Last-Modified} value
|
||||
* is greater. If the resource is newer than the {@code Last-Modified} value, or the header is not present, the
|
||||
* content resource of the resource will be written to the response with caching headers set to expire one year in
|
||||
* the future.
|
||||
*/
|
||||
public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
if (!"GET".equals(request.getMethod())) {
|
||||
throw new HttpRequestMethodNotSupportedException(request.getMethod(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue