SpringMVC mvc:resources访问静态资源实战

该篇博客实现SpringMVC的< mvc :resources location=”” mapping=”“/ >访问静态资源文件,也记录了一些坑

一、项目目录

注意清楚目录结构,笔者第一次的时候在这个上面填坑填了好久,这个坑文后会提出来

SpringMVC mvc:resources访问静态资源实战

二、web.xml配置

SpringMVC mvc:resources访问静态资源实战

注意:/ 会匹配所有url,但不包括 * .jsp,* .html,* .js这样的文件这样的文件。也就是*.jsp不会进入Spring的DispatcherServlet
,所以需要在springmvc中来加载指定静态资源文件,之后在配置springmvc配置文件中会解释

三、创建静态资源文件(注意要在根目录下,即WebContent目录下)

SpringMVC mvc:resources访问静态资源实战

四、创建spring配置文件

SpringMVC mvc:resources访问静态资源实战

注意:

  • 必须有,否则会使requestMapping失效。
  • location:指location指定的目录不要拦截,直接请求,这里指在根目录下的resources文件下的所有文件
  • mapping:值在resources文件下的所有文件(**代表所有文件)
  • 所有意思就是在根目录下resources的所有文件不会被DispatcherServlet拦截,直接访问,当做静态资源交个Servlet处理

五、请求处理控制器

SpringMVC mvc:resources访问静态资源实战

六、创建视图

可以看到返回控制器success,根据springmvc配置文件前缀后缀,在WEB-INF下创建views,创建success.jsp文件

SpringMVC mvc:resources访问静态资源实战

注意(之前在这里遇坑了):该jsp页面加载了一张图片和一个index.css文件

1、首先知道该success.jsp页面在WEB-INF下,之前一直采用:resources/css/index.css和resources/images/tt.jpg,但一直找不到,无法加载css文件和图片,后来才发现,如果success.jsp文件在webcontent根目录下的话这样是对的,但此时在根目录下的WEB-INF下,所以需要回到根目录利用(../)(注意因为控制器中是需要写两个地址:springmvc/mvcsources,如果没有@RequestMapping(“/springmvc”),那么直接就resources/images/tt.jpg就可以了)

2、原始照片的后缀是JPG大写,我写路径时写为jpg小写时图片加载不出,所以记得在这里需要大小写注意下

七、测试

地址输入:
http://localhost:8080/Springmvc_mvcresources/springmvc/mvcresources

结果:

SpringMVC mvc:resources访问静态资源实战

工程下载