千家信息网

SpringMVC对Restful风格的支持是怎样的

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家介绍SpringMVC对Restful风格的支持是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言RESTFUL是一种网络应用程序的设计风格和开发方式,基于
千家信息网最后更新 2026年11月04日SpringMVC对Restful风格的支持是怎样的

这篇文章给大家介绍SpringMVC对Restful风格的支持是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

    前言

    RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。

    一、RESTful简介

    REST:Representational State Transfer,表现层资源状态转移。

    1.1、资源

    资源是一种看待服务器的方式。即,将服务器看作是由很多离散的资源组成。

    每个资源是服务器上一个可命名的抽象概念。

    因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。

    与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词。

    一个资源可以由一个或多个URI来标识。URI既是资源的名称,也是资源在Web上的地址。对某个资源感兴趣的客户端应用,可以通过资源的URI与其进行交互。

    1.2、资源的表述

    资源的表述是一段对于资源在某个特定时刻的状态的描述。可以在客户端-服务器端之间转移(交换)。

    资源的表述可以有多种格式,例如HTML/XML/JSON/纯文本/图片/视频/音频等等。

    资源的表述格式可以通过协商机制来确定。请求-响应方向的表述通常使用不同的格式。

    1.3、状态转移

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

    RESTful规范

    1、对URL进行规范,写RESTful格式的URL

    非REST的URL:http://..../queryItems.action?id=001

    REST的URL风格:http://..../items/001

    特点:URL简洁,将参数通过URL传到服务端,请求URL只是对资源的定位,因此不应该出现动词

    2、http的方法规范

    不管是删除、添加、更新,使用的URL是一致的,如果进行删除,需设置HTTP的方法为delete,其它同理

    后台controller方法:判断http方法,如果是delete则执行删除,如果是post则执行添加

    3、对http的contentType规范

    请求时执行contentType,要json数据,则设置成json格式的type

    而实际使用中第2点往往没有做到

    二、RESTful的实现

    具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。

    它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

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

    操作传统方式REST风格
    查询操作getUserById?id=1user/1–>get请求方式
    保存操作saveUseruser–>post请求方式
    删除操作deleteUser?id=1user/1–>delete请求方式
    更新操作updateUseruser–>put请求方式

    三、HiddenHttpMethodFilter

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

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

    3.1、HiddenHttpMethodFilter 过滤器处理put和delete请求

    要求:

    • 当前请求的请求方式必须为post。

    • 当前通过post请求封装的实际请求方式通过请求参数_method传输。

    HiddenHttpMethodFilter 过滤器就会将当前请求的请求方式转换为请求参数_method的值,因此请求参数_method的值才是最终的请求方式。

    3.2、在web.xml中注册HiddenHttpMethodFilter

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

    3.3、过滤器的先后配置顺序

    当 SpringMVC中提供了两个过滤器:CharacterEncodingFilter和HiddenHttpMethodFilter 在web.xml中注册时,必须先注册CharacterEncodingFilter,再注册HiddenHttpMethodFilter。

    原因:

    在 CharacterEncodingFilter 中通过 request.setCharacterEncoding(encoding) 方法设置字符集的 request.setCharacterEncoding(encoding) 方法要求前面不能有任何获取请求参数的操作。

    而 HiddenHttpMethodFilter 恰恰有一个获取请求方式的操作:String paramValue = request.getParameter(this.methodParam);

    关于SpringMVC对Restful风格的支持是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    资源 方式 风格 服务 服务器 格式 参数 方法 状态 客户 客户端 过滤器 设计 支持 地址 数据 帮助 应用 更新 一致 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 互联网科技活动banner 科技与互联网 互联网下的科技发展 科技类互联网 互联网金融 科技 北京互联网络科技有限公司 融势互联网科技 上海卓越科技 互联网 广西拼得多互联网科技有限公司 互联网大会黑科技排名 晓花互联网科技有限公司网址 宜昌元轩互联网科技有限公司 广州市恰铎互联网科技有限公司 滨湖区互联网智能科技产品有哪些 上海互联网科技公司ppt 互联网时代高科技布局 互联网科技对化妆品行业 互联网的黑科技实验室 山东亿川互联网科技有限责任公司 山东特亿宝互联网科技有限公司 厦门中拓互联网络科技有限公司 互联网科技深圳 智能科技公司是互联网公司吗 金融科技 互联网金融 互联网科技公司官网 阿里巴巴算科技企业还是互联网 互联网科技公司营业执照怎么办理 黑科技 体验场景 互联网大会 互联网科技对化妆品行业
    0