rest restful区别,springmvc中的restful风格

  rest restful区别,springmvc中的restful风格

  00-1010 REST概念介绍:RESTful概念:RESTful实现GET,查询所有用户信息GET,根据用户ID查询用户信息POST,添加用户信息PUT,修改用户信息。

  

目录

 

  

简介

REST:全称:表象状态转移,含义:表示层资源状态转移。

 

  详细说明可分为三个部分:

  资源

  资源是看待服务器的一种方式,即服务器是由许多离散的资源组成的。每个资源都是服务器上可命名的抽象概念。因为资源是一个抽象的概念,它不仅可以表示服务器文件系统中的一个文件,数据库中的一个表等具体的东西,还可以尽可能抽象地设计资源,只要想象力允许,客户端应用开发者能够理解。类似于面向对象设计,以名词为核心组织资源,首先关注的是名词。一个资源可以由一个或多个URIs来标识。URI既是资源的名称,也是资源在Web上的地址。对某个资源感兴趣的客户端应用程序可以通过它的URI与之交互。

  资源的表达

  资源语句是对资源在特定时刻的状态的描述。它可以在客户机和服务器之间传输(交换)。资源可以用各种格式表示,比如HTML/XML/JSON/纯文本/图片/视频/音频等等。资源表达格式可以通过协商机制来确定。请求-响应方向的表达通常使用不同的格式。

  状态迁移

  状态转移意味着客户端和服务器之间的转移代表了资源状态的表达。通过运营资源的转移和表达,间接实现运营资源的目的。

  REST很好的利用了HTTP本身的一些特性,比如HTTP动词、HTTP状态码、HTTP头等等。

  REST架构的主要原则:

  网络上的所有资源都有一个资源标识符;对资源的操作不改变标识符;同一个资源有多种形式(xml、JSON);所有操作都是无状态的;符合上面提到的REST原则的架构叫RESTful;

  

REST概念:

restful是一个常见的rest应用,是一个REST风格的web服务。REST-style(与restful相比,REST多了一个ful,是英语中的形容词,restful翻译成中文就是“REST-style”)web service是一种ROA(Resource Oriented Architecture)。

 

  rest和restful的联系和区别:RESTful源于REST。

  00-1010:具体来说,在http协议中,有四个动词表示操作模式:get、post、put和delete。它们对应四种基本操作:get用于获取资源,post用于创建新资源,put用于更新资源和删除资源。

  REST风格主张URL地址要设计统一的风格,每个单词前后用斜杠隔开。问号键值对不适合携带请求参数,但要发送到服务器的数据应该作为URL地址的一部分,以保证整体风格的一致性。

  00-1010/* * *使用RESTFul模拟用户资源的添加、删除、变更* /user GET查询所有用户信息*/@ RequestMapping (value=/user ,method=requestmethod.get)公共字符串GET alluser(){ system . out . println(查询所有用户信息);返回“成功”;} a th : href= @ {/user } rel= external no follow 查询所有用户信息/abr

  00-1010/* * *使用RESTFul模拟用户资源的添加、删除、变更* /user GET根据用户id查询用户信息*/@ request mapping(value=/user/{ id } ,method=requestmethod.get)公共字符串getuser byid(){ system . out . println(根据ID查询用户信息)返回 success ;}a th:href=@{/user/1} rel=外部nofollow gt

  ;根据id查询用户信息</a><br>

 

  

POST, 添加用户信息

 /** * 使用RESTFul模拟用户资源的增删改查 * /user POST 添加用户信息 */ @RequestMapping(value = "/user", method = RequestMethod.POST) public String insertUser(String username, String password){ System.out.println("添加用户信息:"+username+","+password); return "success"; }
<form th:action="@{/user}" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="添加"><br></form>

 

  

PUT, 修改用户信息

 /** * 使用RESTFul模拟用户资源的增删改查 * /user PUT 修改用户信息 */ @RequestMapping(value = "/user", method = RequestMethod.PUT) public String updateUser(String username, String password){ System.out.println("修改用户信息:"+username+","+password); return "success"; }
<form th:action="@{/user}" method="post"> <input type="hidden" name="_method" value="PUT"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="修改"><br></form>

注意:

 

  由于浏览器只支持发送get和post方式的请求,那么该如何发送put和delete请求呢?

  SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将 POST 请求转换为 DELETE 或 PUT 请求

  HiddenHttpMethodFilter 处理put和delete请求的条件: a>当前请求的请求方式必须为post , b>当前请求必须传输请求参数_method 满足以上条件,HiddenHttpMethodFilter 过滤器就会将当前请求的请求方式转换为请求参数_method的值,因此请求参数_method的值才是最终的请求方式

  配置HiddenHttpMethodFilter,在web.xml中

  

 <!--配置HiddenHttpMethodFilter--> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

注:

 

  目前为止,SpringMVC中提供了两个过滤器:CharacterEncodingFilter(编码过滤器)和HiddenHttpMethodFilter(请求方式过滤器),在web.xml中注册时,必须先注册CharacterEncodingFilter,再注册HiddenHttpMethodFilter。原因:

  在 CharacterEncodingFilter 中通过 request.setCharacterEncoding(encoding) 方法设置字符集的request.setCharacterEncoding(encoding) 方法要求前面不能有任何获取请求参数的操作,而 HiddenHttpMethodFilter 恰恰有一个获取请求方式的操作:

  

String paramValue = request.getParameter(this.methodParam);

到此这篇关于spring中REST和RESTful的区别以及基本实现的文章就介绍到这了,更多相关spring REST和RESTful内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: