栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springMVC-静态资源

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springMVC-静态资源

接上一篇:springMVC跳转和传值

1. 静态资源
  1. 静态资源:就是html文件,js文件,css文件,图片文件
  1. 静态文件没有url-pattern,所以默认是访问不到的,如果没有springMVC的配置文件web.xml中的DispatcherServlet中的url-pattern,我们是可以访问,

  1. 如上图可以看到url-pattern为“/”
  2. 如果没有这个servlet配置,tomcat中有一个全局的servlet:org.apache.catalina.servlets.defaultServlet
  3. 它的url-pattern也是/,所以如果每个项目有不能匹配的静态资源,有这个Servlet来处理就可以
  4. 但是现在我们SpringMVC中DispatcherServlet中,也就是上面图片里的配置也采用了“/”作为url-parttern,它把这个“/”给占下了,会导致Tomcat全局的那个servlet不能再处理静态资源
  5. 这个DispatcherServlet的servlet只会去找controller的路径,不会找静态资源

所以我们在这种配置下的springMVC项目中,访问静态资源,例如hello.html文件,会报404,运行结果如下

1.1 解决方案1

既然是由于DispatcherServlet的url-pattern的“/”导致的,我们可以直接把“/”改为其他的路径,如后缀的形式:*.xmq,这种写法的意思是,以后url以.xmq结尾的controller,都可以被我们的DiapatcherServlet处理


改DispatcherServlet的url-pattern

后再次访问静态资源hello.html,发现可以访问到了

以后我们Tomcat运行,访问路径要这样写:访问http://localhost:8080/data/test.xmq,即以.xmq结尾

1.2 解决方案2




    

    

    
        
        
    

    


该行代码:它会在controller中增加一个handler,也就是一个方法,并且其@requestMapping(“/**”)
,这个访问路径是可以匹配所有请求的意思,但是优先级最低,只有所有路径都匹配后,请求才会转向"/**",
这个handler会将请求转到tomcat中名为default的Servlet,从而就可以访问到静态资源了

1.3 解决方案3

在mvc.xml文件中添加如下代码

  • 把html、css文件放在static/。。/目录下统一路径
  

mapping: 映射两个*,表示映射指定路径下所有的URL,包括子路径
	*代表下面的资源
	**代表下面或者所有的子目录
location:本地资源路径
这样如果有访问/images或者/js或者/css路径下面的资源的时候,spring就不会拦截了

Tomcat运行,访问路径为http://localhost:8080/html/hello.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/859501.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号