对于spring mvc的静态资源处理。
由于初期的时候对于spring MVC对于静态资源的处理并不是很好,如果将DispatcherServlet请求映射配置为"/",则springMVC则将捕获web容器所有请求,包括静态资源的请求,spring mvc会将它们当成一个普通请求处理,因为找不到对应处理器将导致错误。
对于spring mvc 3.x之后,就有新的方式去配置静态资源了。
- 采用 <mvc:default-servlet-handler />
- 采用 <mvc:resources />
详解:
<mvc:default-servlet-handler />
在配置了<mvc:default-servlet-handler />之后,会在spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,他就像一个检查员一样,进入DispatcherServlet的URL进行筛查,如果发现的是静态资源的请求,就会将请求由web应用服务器默认的servlet处理,如果不是才由DispatcherServlet去处理的。
<mvc:resources />
对于<mvc:resources />,允许了静态资源放在任何位置了,同时也可以通过location属性指定静态资源的位置,隐藏可以使用“classpath:”属性了。
PS:对于具体的
springMVC3.X --- Configuring springMVC
的配置:
里面有详细的介绍。。。