diff --git a/spring-framework-reference/src/mvc.xml b/spring-framework-reference/src/mvc.xml index 0d09924fb45..278f7b0f4db 100644 --- a/spring-framework-reference/src/mvc.xml +++ b/spring-framework-reference/src/mvc.xml @@ -3360,13 +3360,20 @@ public class SimpleController { This tag allows static resource requests following a particular URL pattern to be served by a ResourceHttpRequestHandler from any of a list of Resource locations. This provides a convenient way to serve static resources from locations other than the - web application root, including locations on the classpath, and the resources are served with far future expiration headers (1 year, as recommended by - optimization tools such as Page Speed and YSlow) so that they will be more efficiently utilized by the client. For example, to serve resource requests - with a URL pattern of /resources/** from a public-resources directory within the web application root, the tag would be used - as follows: + web application root, including locations on the classpath. The cache-seconds property may be used to set far future expiration headers + (1 year is the recommendation of optimization tools such as Page Speed and YSlow) so that they will be more efficiently utilized by the client. The handler + also properly evaluates the Last-Modified header (if present) so that a 304 status code will be returned as appropriate, avoiding + unnecessary overhead for resources that are already cached by the client. For example, to serve resource requests with a URL pattern of + /resources/** from a public-resources directory within the web application root, the tag would be used as follows: ]]> + + + To serve these resources with a 1-year future expiration to ensure maximum use of the browser cache and a reduction in HTTP requests made by the browser: + + ]]> The mapping attribute must be an Ant pattern that can be used by SimpleUrlHandlerMapping, and the location @@ -3423,7 +3430,7 @@ application.version=1.0.0]]> This tag allows for mapping the DispatcherServlet to "/" (thus overriding the mapping of the container's default Servlet), while still allowing static resource requests to be handled by the container's default Servlet. It configures a - DefaultServletHttpHandler with a URL mapping (given a lowest precedence order) of "/**". This handler will + DefaultServletHttpRequestHandler with a URL mapping (given a lowest precedence order) of "/**". This handler will forward all requests to the default Servlet. To enable this feature using the default setup, simply include the tag in the form: The caveat to overriding the "/" Servlet mapping is that the RequestDispatcher for the default Servlet must be - retrieved by name rather than by path. The DefaultServletHttpHandler will attempt to auto-detect the default + retrieved by name rather than by path. The DefaultServletHttpRequestHandler will attempt to auto-detect the default Servlet for the container at startup time, using a list of known names for most of the major Servlet containers (including Tomcat, Jetty, Glassfish, JBoss, Resin, WebLogic, and WebSphere). If the default Servlet has been custom configured with a different name, or if a different Servlet container is being used where the default Servlet name is unknown, then the