SpringMVC处理静态资源
1、为什么需要处理静态资源?
在web.xml文件中配置springMVC的时候,拦截了所有请求:
若将 DispatcherServlet 请求映射配置为 /,则 Spring MVC 将捕获WEB 容器的所有请求,包括静态资源的请求, SpringMVC 会将他
们当成一个普通请求处理,因找不到对应处理器将导致错误 。
2、处理的方法
方法一:
可以在 SpringMVC 的配置文件springmvc-servlet.xml中配置 <mvc:default-servlethandler/> 的方式解决静态资源的问题:
<mvc:default-servlet-handler/>
<mvc:default-servlet-handler/> 将在 SpringMVC 上下文中定义一个DefaultServletHttpRequestHandler,它会对进入 DispatcherServlet 的请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由 WEB应用服务器默认的 Servlet 处理,如果不是静态资源的请求,由DispatcherServlet继续处理。一般 WEB 应用服务器默认的 Servlet 的名称都是 default。若所使用的WEB 服务器的默认 Servlet 名称不是 default,则需要通过defaultservlet-name 属性显式指定 。
方法二
使用<mvc:resources>在springmvc-servlet.xml中配置;每增加一个目录都需要增加一行,如下所示:
<mvc:resources location="/css/" mapping="/css/**" /> <mvc:resources location="/fonts/" mapping="/fonts/**" /> <mvc:resources location="/images/" mapping="/images/**" /> <mvc:resources location="/js/" mapping="/js/**" />