视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)

Java技术 潘老师 3年前 (2021-03-08) 1000 ℃ (0) 扫码查看

1.视图解析器常见功能:

之前我们从一个jsp跳转到另一个jsp,需要借助Controller中的@RequestMapping匹配请求,执行方法,进行跳转。现在可以省去匹配请求的方法,直接跳转:
需要在springmvc.xml中使用mvc:view-controller标签:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)
index.jsp:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)
这时发现该请求可以直接实现页面跳转到success.jsp,但是其他所有请求都会报404错误。

原因:

因为mvc:view-controller标签会让所有请求都转入mvc:view-controller中所配置的映射地址,而忽略掉@RequestMapping,如果想让@RequestMapping和mvc:view-controller共存,则需要在springmvc.xml中新增配置:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)
以后我们搭建SpringMVC环境都要加上这个标签

2.处理静态资源

比如html、css、js、图片、视频等
1)在webcontent目录下新建images文件夹,添加一个header.jpg
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)
2)浏览器直接访问,发现提示404:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)

注意:静态资源直接访问都提示404,原因:
因为在SpringMVC中,所有的请求都会被web.xml配置的”/”拦截交给DispatcherServlet去处理,而DispatcherServlet处理的方式是根据请求映射去Controller匹配对应的@RequestMapping,找不到则报404.

3)解决办法:
一般而言,静态资源都是直接访问,不需要SpringMVC处理,则使用tomcat默认的servlet去处理。
tomcat默认的servlet:如果有请求拦截则交给对应的servlet去处理,如果没有对应的servlet,则直接访问。
tomcat默认的servlet位置:在tomcat的conf目录下的web.xml中

解决方案:

只需要在springmvc.xml中新增一个配置:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)
再测试:
视图解析器常见功能、处理静态资源——SpringMVC框架系列教程(8)


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/2398.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】