SpringMVC初写(六)静态资源设置

众所周知,SpringMVC的DispatchServlet是不可以以/*规则拦截请求的,否则会将JSP都拦截了,但有时候我们的请求路径是不能有后缀(Resful风格的接口需要),基于上述情况,我们可以将web.xml中的路径配置文件改为<url-pattern>/</url-pattern>

/*和/的区别:

/*表示拦截所有的东西,包含动态页面和静态资源,/表示拦截所有的静态资源(html,css,js...)以及请求,除了动态页面(jsp)的其他东西

SpringMVC框架对于实现无后缀请求的解决方案是修改<url-pattern>/</url-pattern>的定义,使<url-pattern>/</url-pattern>也可以让拦截的请求访问静态资源

流程:

  1.在web.xml中对<url-pattern>/</url-pattern>进行配置

  

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classPath:spring-mvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  2.对SpringMVC进行配置,指定开放的静态资源映射

<mvc:annotation-driven></mvc:annotation-driven>
    <!-- 方案1:一个个目录放开
    <mvc:resources>标签可以放开单个静态资源目录的访问
    mapping:指定访问的映射路径
    location:指定放开的静态资源文件目录
     -->
    <mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
    <!-- 方案2:一次性放开所有的静态资源文件目录 -->
    <mvc:default-servlet-handler/>

注:使用<mvc:**>类的标签必须要先配置<mvc:annotation-driven/>标签

原文地址:https://www.cnblogs.com/lch-Hao/p/10770650.html