<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
上面的配置含义表示html页面由服务器的缺省Servlet进行处理,同时注意上面的配置项要写在DispatcherServlet前面。html
若是你的DispatcherServlet拦截"/",拦截了全部的请求,那么同时对.js,.jpg等静态文件的访问也就被拦截了,从controller返回的html页面也被拦截了,所以浏览器得不到页面。web
<mvc:resources location="/static/**" mapping="/static/" />
/static/**为映射路径,location指定静态资源的位置.使用<mvc:resources/>元素,把映射路径注册到SimpleUrlHandlerMapping的urlMap中,key为注册的映射路径,而value为ResourceHttpRequestHandler,这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回spring
在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,若是发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,若是不是静态资源的请求,才由DispatcherServlet继续处理。浏览器
<mvc:default-servlet-handler>和<mvc:resource>的区别:<mvc:default-servlet-handler>是将静态资源的处理转给服务器默认的servlet进行处理,<mvc:resource>是由spring本身处理静态资源,这样spring能够添加一些额外的功能,如缓存等。缓存