千家信息网

spring中REST和RESTful怎么实现

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天小编给大家分享一下spring中REST和RESTful怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收
千家信息网最后更新 2026年10月31日spring中REST和RESTful怎么实现

今天小编给大家分享一下spring中REST和RESTful怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

简介

REST概念:

REST :全称:Representational State Transfer,意思:表现层资源状态转移

详细解释可分为三部分:

资源

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

资源的表述

资源的表述是一段对于资源在某个特定时刻的状态的描述。可以在客户端-服务器端之间转移(交换)。资源的表述可以有多种格式,例如HTML/XML/JSON/纯文本/图片/视频/音频等等。资源的表述格式可以通过协商机制来确定。请求-响应方向的表述通常使用不同的格式。

状态转移

状态转移说的是:在客户端和服务器端之间转移(transfer)代表资源状态的表述。通过转移和操作资源的表述,来间接实现操作资源的目的。

REST很好地利用了HTTP本身就有的一些特征,如HTTP动词、HTTP状态码、HTTP报头等等

REST架构的主要原则:

  • 对网络上所有的资源都有一个资源标志符;

  • 对资源的操作不会改变标识符;

  • 同一资源有多种表现形式(xml、json);

  • 所有操作都是无状态的(Stateless);

  • 符合上述REST原则的架构方式称为RESTful;

RESTful概念:

RESTful是一种常见的REST应用,是遵循REST风格的web服务,REST式的(rest与restful相比,多了一个ful,就英语层面来说是一个形容词,restful翻译为中文为: "rest式的")web服务是一种ROA(面向资源的架构)

REST和RESTful的联系与区别:restful是由rest派生出来的。

RESTful实现

具体说,就是http协议里面,四个表示操作方式的动词:get,post,put,delete,它们分别对应四种基本操作:get用来获取资源,post用来新建资源,put用来更新资源,delete用来删除资源

REST 风格提倡URL地址使用统一的风格设计,从前到后各个单词使用斜杠分开,不适用问号键值对方式携带请求参数,而是将要发送给服务器的数据作为URL地址的一部分,以保证整体风格的一致性。

GET, 查询所有用户信息

    /**    * 使用RESTFul模拟用户资源的增删改查    * /user    GET     查询所有用户信息    */    @RequestMapping(value = "/user", method = RequestMethod.GET)    public String getAllUser(){        System.out.println("查询所有用户信息");        return "success";    }
查询所有用户信息

GET, 根据用户ID查询用户信息

    /**    * 使用RESTFul模拟用户资源的增删改查    * /user     GET     根据用户id查询用户信息    */    @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)    public String getUserById(){        System.out.println("根据id查询用户信息");        return "success";    }
根据id查询用户信息

POST, 添加用户信息

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

PUT, 修改用户信息

    /**    * 使用RESTFul模拟用户资源的增删改查    * /user     PUT     修改用户信息    */    @RequestMapping(value = "/user", method = RequestMethod.PUT)    public String updateUser(String username, String password){        System.out.println("修改用户信息:"+username+","+password);        return "success";    }
用户名:
密码:

注意:

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

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

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

配置HiddenHttpMethodFilter,在web.xml中

                HiddenHttpMethodFilter        org.springframework.web.filter.HiddenHttpMethodFilter                HiddenHttpMethodFilter        /*    

注:

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

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

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

以上就是"spring中REST和RESTful怎么实现"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

资源 用户 信息 方式 服务 查询 服务器 状态 参数 客户 客户端 概念 知识 篇文章 过滤器 风格 地址 架构 格式 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 新华互联网科技学院 智能科技公司是互联网公司吗 互联网科技公司发展 互联网未来科技 互联网科技缩写 深圳天众互联网科技公司 深圳期待互联网科技 甘肃拓世互联网科技有限公司 科技赋能互联网健康 深圳前海聚择互联网科技有限公司 北京大学互联网科技怎么样 宁夏众和广鑫互联网科技有限公司 湖北码尼互联网科技有限公司电话 荆州市昕露互联网络科技有限公司 米聚互联网科技南京有限公司排面 互联网方面的科技前沿 上海互联网科技公司ppt 普陀区互联网教育科技管理办法 陕西彩京云互联网科技有限公司 广州为想互联网科技有限公司 互联网科技公司华为 互联网与科技金融数据 亿账通互联网科技 上海万想互联网科技 美国互联网前沿科技 长沙茂晟互联网科技有限公司 锡山区互联网智能科技产品供应 河南商务圈互联网科技有限公司 银川新华互联网科技学校招聘
0