阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680
本文将先从通过Restful风格的URL请求来介绍网络通信必备基础
SpringMVC的URL请求的配置方式有两种
第一种方式:.do,.action 类似于 /user/addUser.do /user/addUser.action
第二种配置方式:/ 类似于/user/addUser /user/delUser*
注意:第二种方式其实是包含第一种方式,但是当我们的页面包含静态资源文件.js,.image,.css 的时候 springMVC 会将他们认为是一个 url 请求去匹配,结果 404。*
怎么解决?
三种方式:
一:在springmvc.xml配置文件里面配置:
二:在springmvc.xml配置文件里面配置:
三:在web.xml配置:
ps:实际应用中第一种方式比较常见,因为后两种方式使用的是容器默认的 servlet,不同的容器默认的 servlet 不同,实际项目部署时多用 WebLogic,WebSphere。Tomcat 多用于开发。为了防止部署的时候出现差错,所以一般用第一种方式。
Restful是什么
中文名称:表现层状态转化。用 URL 表示要操作的资源,用不同的 HTTP 请求(GET,POST,PUT,DELETE)描述对资源的操作,通过 HTTP 的状态码来判断此次对资源操作的结果,这就是 Restful风格。
其实 Restful 风格是对请求的一次解耦,提高了 url 的重用性。
状态转化:客户端通过 http 协议访问服务端资源,通过 http 协议里面定义好的四个动词:GET POST PUT DELETE 来讲资源进行状态转化。
GET 用来获取资源
POST 用来新增资源
PUT 用来更新资源
DELETE 用来删除资源
put和delete虽然是http协议的规范 ,但是遗憾的是,所有的无论是html4还是h5都不支持,所以我们在实际开开发过程当中要模拟这两种状态。
普通的URL开发方式 :http://qujianlei.com/getUserList addUser deleteUser updateUser
Restful风格的URL:
http://qujianlei.com/users/ method = “get” 获取用户列表
http://qujianlei.com/user method = “post” 更新用户
http://qujianlei.com/user method=“delete” 删除用户
http://qujianlei.com/user method = “put” 新增用户
Restful怎么实现
SpringMVC 提供了对 restful 风格很友好的支持。
支持无后缀的 uri 匹配,是一种很优雅的 restful 风格的 URI。
对于 html 不支持的 delete 和 put 两种提交方式,提供了一个过滤器进行转化:设置一个 _method = delete / put 的元素,通过 springmvc 提供的过滤器, 能够将他转化成 http 协议的 delete 和 put 提交方式 ,可以在 springmvc 的 @RequestMapping 注解里面获取。
像下面这样来模拟 put 和 delete 两种方式:
a:配置 HiddenHttpMethodFilter 过滤器
b:在 @RequesetMapping 注解用指定 method 的方式来匹配 url
c:对于 http://qujianlei.com/user/1 带参数的这种方式,需要用 @PathVariable 注解来接收
Restful有什么意义
网络上的所有的信息体都看作一种资源,对网络资源的某种操作,都是通过 method 来确定的。
对于现在的数据或者资源提供方,对外透露的接口一般是 restful 风格的,有利于不同系统之间的资源共享,而且只需要遵守规范不需要做另外的配置就能达到资源共享。
这是豆瓣提供的一个 restful 风格的 URL :https://api.douban.com/v2/book/2129650
获取到的 json 格式的数据如下:
{"rating":{"max":10,"numRaters":16,"average":"7.4","min":0},"subtitle":"","author":["廖雪峰"],"pubdate":"2007","tags":[{"count":21,"name":"spring","title":"spring"},{"count":13,"name":"Java","title":"Java"},{"count":6,"name":"javaee","title":"javaee"},{"count":5,"name":"j2ee","title":"j2ee"},{"count":4,"name":"计算机","title":"计算机"},{"count":4,"name":"编程","title":"编程"},{"count":3,"name":"藏书","title":"藏书"},{"count":3,"name":"POJO","title":"POJO"}],"origin_title":"","image":"https://img3.doubanio.com/view/subject/m/public/s2552283.jpg","binding":"平装","translator":[],"catalog":"","pages":"509","images":{"small":"https://img3.doubanio.com/view/subject/s/public/s2552283.jpg","large":"https://img3.doubanio.com/view/subject/l/public/s2552283.jpg","medium":"https://img3.doubanio.com/view/subject/m/public/s2552283.jpg"},"alt":"https://book.douban.com/subject/2129650/","id":"2129650","publisher":"电子工业出版社","isbn10":"7121042622","isbn13":"9787121042621","title":"Spring 2.0核心技术与最佳实践","url":"https://api.douban.com/v2/book/2129650","alt_title":"","author_intro":"","summary":"本书注重实践而又深入理论,由浅入深且详细介绍了Spring 2.0框架的几乎全部的内容,并重点突出2.0版本的新特性。本书将为读者展示如何应用Spring 2.0框架创建灵活高效的JavaEE应用,并提供了一个真正可直接部署的完整的Web应用程序——Live在线书店(http://www.livebookstore.net)。 在介绍Spring框架的同时,本书还介绍了与Spring相关的大量第三方框架,涉及领域全面,实用性强。本书另一大特色是实用性强,易于上手,以实际项目为出发点,介绍项目开发中应遵循的最佳开发模式。 本书还介绍了大量实践性极强的例子,并给出了完整的配置步骤,几乎覆盖了Spring 2.0版本的新特性。 本书适合有一定Java基础的读者,对JavaEE开发人员特别有帮助。本书既可以作为Spring 2.0的学习指南,也可以作为实际项目开发的参考手册。","price":"59.8"}
我们在后台获取到了这些数据之后,再通过一些 json 解析包,像:fastjson,gson…就可以把获取到的数据转换成 java 对象,然后再进行数据库的一些增删改查操作。
restful 是用来外提供接口的,主要用于在不同的系统之间进行数据的交互。
ps:其实在做内部系统的时候并不会使用 restful 风格的 url 请求,只用普通的 @RequestMapping 来匹配请求就行了。
原文链接:https://blog.csdn.net/a909301740/article/details/80587580
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680