SpringMVC---处理静态资源

一:为什么会出现处理静态资源请求失败的问题

  1. 优雅的REST风格的资源URL,不希望带.html或。do等后缀。
  2. 若将DispatcherServlet请求映射配置为/,则springMVC将会捕获WEB容器的所有请求,包括静态资源的请求,springMVC会将当成一个普通的请求处理,因找不到对应的处理器导致错误。

二:解决办法

  1. 可以在springMVC的配置文件中配置<mvc:default-servlet-handler/>的方式解决静态资源的问题
  2. 将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler,它会对进入 DispatcherServlet 的 请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由 WEB 应用服务器默认的 Servlet 处理,如果不是静态资源的请求,才由 DispatcherServlet 继续处理
  3. 一般 WEB 应用服务器默认的 Servlet 的名称都是 default。若所使用的 WEB 服务器的默认 Servlet 名称不是 default,则需要通过 defaultservlet-name 属性显式指定

三:代码实现

<!-- 
	 	将在 SpringMVC 上下文中定义一个 DefaultServletHttpRequestHandler,它会对进入 DispatcherServlet 的 请求进行筛查,
	 	如果发现是没有经过映射的请求,就将该请求交由 WEB 应用服务器默认的 Servlet 处理,如果不是静态资源的请求,
	 	才由 DispatcherServlet 继续处理.
		一般 WEB 应用服务器默认的 Servlet 的名称都是 default。若所使用的 WEB 服务器的默认 Servlet 名称不是 default,
		则需要通过 defaultservlet-name 属性显式指定
	 -->
	<mvc:default-servlet-handler/>
发布了64 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39093474/article/details/103772149