SpringMVC中关于访问静态资源的详解
  TEZNKK3IfmPf 2023年11月13日 70 0

在进行对 SpringMVC 配置时,通常我们会配置一个 ​​dispatcherServlet​​ 用于处理对应的 URL。

在设置 ​​url-pattern​​ 时可以设置三种形式,三种形式分别如下所示:

 

  • ​/*​​:拦截所有 jsp、js、png、css 真的全部拦截,不建议使用。
  • ​/​​​:拦截所有,不包括 jsp,包含​​.js​​​、​​.png​​​、​​.css​​​,​​建议使用​​。
  • ​*.action​​​,​​*.do​​​:拦截以​​do​​​、​​action​​,结尾的请求。

 

我们先来看看我们访问静态资源的时候会出现什么情况如下所示:

在 ​​web​​ 目录下创建一个 images 的文件夹,创建了之后并放入静态资源。

SpringMVC中关于访问静态资源的详解

启动工程查看效果图如下:

SpringMVC中关于访问静态资源的详解

发现图片访问 ​​404​​​ 因为我们在 ​​web.xml​​​ 中 ​​url-pattern​​​ 配置的是 ​​/​​​ ,​​/​​​ 在上面我说过了包含 ​​.js​​​、​​.png​​​、​​.css​​​ 这些资源不会自动放开,所以这就是 url-pattern 为 ​​/​​ 时访问静态资源的效果。

url-pattern 为 ​​/​​ 时访问静态资源的两种方式如下:

方式1,在 SpringMVC 核心配置文件当中加入如下配置:

<mvc:default-servlet-handler/>

重启工程查看效果如下,需要注意的是图片后缀是 ​​.png​​ 结尾的:

SpringMVC中关于访问静态资源的详解

方式2,采用 Spring 自带的 ​​<mvc:resources>​​ 的方式,修改 SpringMVC 核心配置文件加入以下内容,方式二的话图片后缀可以任意:

<mvc:annotation-driven/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>

重启工程查看效果如下:

SpringMVC中关于访问静态资源的详解

以上的配置含义如下:

 

  • ​location​​ 元素表示 webapp 目录下的 images 包下的所有文件;
  • ​mapping​​ 元素表示以 /images 开头的所有请求路径,如 /images/a 或者 /images/a/b;
  • 该配置的作用是:告诉​​DispatcherServlet​​ 不拦截以 /images 开头的所有请求路径,并当作静态资源交由 Servlet 处理;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   26   0   0 css
  TEZNKK3IfmPf   2023年11月15日   35   0   0 csshtmljs
  TEZNKK3IfmPf   2024年03月30日   98   0   0 css
  TEZNKK3IfmPf   2023年11月15日   31   0   0 csshtmljson
TEZNKK3IfmPf