<mvc:default-servlet-handler/>作用

优雅 REST 风格的 URL 不希望带 .html 或 .do 等后缀,而如果将 DispatcherServlet 请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,静态资源的请求找不到对应处理器将导致错误。

<servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

解决办法:
1、在xml文件中配置<mvc:default-servlet-handler/>

<mvc:default-servlet-handler/>

在xml文件中配置<mvc:default-servlet-handler/>,Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,对进入 DispatcherServlet 的 URL 进行筛查,静态资源由 Web 服务器默认的Servlet 处理,非静态资源的请求,由 DispatcherServlet 处理

2、<mvc:resources /> 允许静态资源放在任何地方

<mvc:resources location="/,classpath:/META-INF/publicResources/" mapping="/resources/**"/>

配置将Web根路径 "/" 及类路径下 /META-INF/publicResources/ 的目录映射为 /resources 路径。假设Web根路径下拥有 images、js 这两个资源目录,在 images下面有 bg.gif 图片,在 js下面有 test.js 文件,则可以通过 /resources/images/bg.gif 和 /resources/js/test.js 访问这二个静态资源。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容