用了springmvc为何JS,CSS等文件就是访问不到

那就是为什么我配置好web.xml中的dispatchservlet后,js,css,甚至gif都不能正常显示了

我们来看看我们配置的web.xml

 1     <!-- springMVC核心配置      controller,viewResolver,HandlerMapping -->
 2     <servlet>
 3         <servlet-name>dispatcherServlet</servlet-name>
 4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5         <init-param>
 6             <param-name>contextConfigLocation</param-name>
 7             <!--spingMVC的配置路径 -->
 8             <param-value>classpath:spring-mvc.xml</param-value>
 9         </init-param>
10         <load-on-startup>1</load-on-startup>
11     </servlet>
12     <servlet-mapping>
13         <servlet-name>dispatcherServlet</servlet-name>
14         <url-pattern>/</url-pattern>
15     </servlet-mapping>

这个就涉及到一个知识点了,就是url-pattern的   /    和    *   的区别了

这里我来引用一段别人的原话

url-pattern有5种配置模式:  

(1)/xxx:完全匹配/xxx的路径  

(2)/xxx/*:匹配以/xxx开头的路径,请求中必须包含xxx。  

(3)/*:匹配/下的所有路径,请求可以进入到action或controller,但是转发jsp时再次被拦截,不能访问jsp界面。  

(4).xx:匹配以xx结尾的路径,所有请求必须以.xx结尾,但不会影响访问静态文件。  

(5)/:默认模式,未被匹配的路径都将映射到刺servlet,对jpg,js,css等静态文件也将被拦截,不能访问。 

因此,如果我们一开始就采用了/的方式,那么就需要补上如下的web.xml配置来让静态文件可访问了

<!-- static resources -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>

    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

 

 

原文地址:https://www.cnblogs.com/hy-space/p/7487659.html