这个可以说是很多初学Springmvc的人都会碰到一个令人头痛的问题

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

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

    1. springmvc
    2. org.springframework.web.servlet.DispatcherServlet
    3. contextConfigLocation
    4. /WEB-INF/applicationContext.xml
    5. 1
    6. springmvc
    7. /

    之前我是这样的,那么这个是什么意思呢?

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

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

    1. url-pattern有5种配置模式:

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

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

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

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

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

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

    1. default

    2. *.css

    1. default

    2. *.gif

    1. default

    2. *.jpg

    1. default

    2. *.js

    但是其实简单的做法就是,我们并不需要这么复杂,其实就是把所有需要springmvc dispatchservlet的地方,设置成.do就可以了,这样静态文件还是可以继续访问的。

    否则我们要设置需要servlet-mapping的defaultServlet了。

    最后再介绍一种方法,这个是网上看来的,我没有尝试过,先贴出来