1.问题的引入
为什么上节课在我们代码中,访问Ajax.jsp之后去找js文件夹下的jquery-3.3.1.js会报404呢?
因为我们在配置SpringMVC的DispatcherServlet的时候,url设置的是缺省的:/
也就是说,每个请求都会被DispatcherServlet当作我们写好的Controller方法的请求还有它绑定的@RequestMapping()
然后它发现没有任何一个@RequestMapping里面写的请求能和这个匹配起来,所以它就什么都不做了。
2.第一种解决方法
在spring-mvc.xml中加入相关的配置,这个配置跟文件夹的名称有关
例如我在webapp下有一个js文件夹和images文件夹,如果要访问其中的静态资源,添加如下配置即可:
<!--开放资源的访问权限-->
<!--mapping代表是哪个请求映射地址-->
<!--location代表是哪个目录下的资源-->
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/images/**" location="/images/"/>
3.第二种解决方法
DispatcherServlet找不到请求资源后,交给原始容器去找
推荐使用这种方法,在sping-mvc.xml中加入一行配置轻松解决所有文件夹的静态资源访问的问题:
<!--代表DispatcherServlet找不到请求资源后,交给原始容器去找-->
<mvc:default-servlet-handler/>