首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringMVC中关于访问静态资源的详解

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

原创
作者头像
程序员NEO
发布2023-10-01 20:07:35
发布2023-10-01 20:07:35
7660
举报

概述

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

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

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

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

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

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

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

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

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

代码语言:html
复制
<mvc:default-servlet-handler/>

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

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

代码语言:html
复制
<mvc:annotation-driven/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>

重启工程查看效果如下:

以上的配置含义如下:

location 元素表示 webapp 目录下的 images 包下的所有文件; mapping 元素表示以 /images 开头的所有请求路径,如 /images/a 或者 /images/a/b; 该配置的作用是:告诉 DispatcherServlet 不拦截以 /images 开头的所有请求路径,并当作静态资源交由 Servlet 处理;

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档