SpringMVC-------------HiddenHttpMethodFilter (REST)

SpringMVC框架学习笔记(三):url请求风格-Rest 以及 SpringMVC 映射获取到各种类型数据 url请求风格-Rest 以及 SpringMVC 映射获取到各种类型的数据 阅读详情

HiddenHttpMethodFilter (REST)

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。

它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。

例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。

    1. 参考资料:
    1. REST风格是什么?
  • REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用
  • 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。

它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。

可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。

获取这个资源,访问它的URI就可以,因此 URI 即为每一个资源的独一无二的识别符。

  • 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。
  • 状态转化(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化”(State Transfer)

而这种转化是建立在表现层之上的,所以就是 “表现层状态转化”。

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

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

  • URL风格

示例:

/order/1  HTTP GET :得到 id = 1 的 order   

/order/1  HTTP DELETE:删除 id = 1的 order   

/order/1  HTTP PUT:更新id = 1的 order   

/order     HTTP POST:新增 order 

  • HiddenHttpMethodFilter

浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支持,

Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。

    1. 实验代码
  • 配置HiddenHttpMethodFilter过滤器

<!-- 支持REST风格的过滤器:可以将POST请求转换为PUT或DELETE请求 -->

<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>

  • 代码

/**

 * 1.测试REST风格的  GET,POST,PUT,DELETE 操作

 * 以CRUD为例:

 * 新增: /order POST

 * 修改: /order/1 PUT        update?id=1

 * 获取: /order/1 GET                get?id=1

 * 删除: /order/1 DELETE        delete?id=1

 

 * 2.如何发送PUT请求或DELETE请求?

 * ①.配置HiddenHttpMethodFilter

 * ②.需要发送POST请求

 * ③.需要在发送POST请求时携带一个 name="_method"的隐含域,值为PUT或DELETE

 

 * 3.在SpringMVC的目标方法中如何得到id值呢?

 *   使用@PathVariable注解

 */

@RequestMapping(value="/testRESTGet/{id}",method=RequestMethod.GET)

public String testRESTGet(@PathVariable(value="id") Integer id){

System.out.println("testRESTGet id="+id);

return "success";

}

 

@RequestMapping(value="/testRESTPost",method=RequestMethod.POST)

public String testRESTPost(){

System.out.println("testRESTPost");

return "success";

}

 

@RequestMapping(value="/testRESTPut/{id}",method=RequestMethod.PUT)

public String testRESTPut(@PathVariable("id") Integer id){

System.out.println("testRESTPut id="+id);

return "success";

}

 

@RequestMapping(value="/testRESTDelete/{id}",method=RequestMethod.DELETE)

public String testRESTDelete(@PathVariable("id") Integer id){

System.out.println("testRESTDelete id="+id);

return "success";

}

  • 请求链接

<fieldset>

<!-- 实验1 测试 REST风格 GET 请求 -->

<a href="springmvc/testRESTGet/1">testREST GET</a><br/><br/>

 

<!-- 实验2 测试 REST风格 POST 请求 -->

<form action="springmvc/testRESTPost" method="POST">

<input type="submit" value="testRESTPost">

</form>

 

<!-- 实验3 测试 REST风格 PUT 请求 -->

<form action="springmvc/testRESTPut/1" method="POST">

<input type="hidden" name="_method" value="PUT">

<input type="submit" value="testRESTPut">

</form>

 

<!-- 实验4 测试 REST风格 DELETE 请求 -->

<form action="springmvc/testRESTDelete/1" method="POST">

<input type="hidden" name="_method" value="DELETE">

<input type="submit" value="testRESTDelete">

</form>

</fieldset>

    1. HiddenHttpMethodFilter过滤器源码分析
  1. 为什么请求隐含参数名称必须叫做”_method”

Qt+VS集成高德红外相机SDK与OpenCV的采图实践 本文详细介绍了在Qt和Visual Studio环境中集成高德红外相机SDK与OpenCV的完整实践方案。涵盖环境配置、SDK初始化、图像采集与处理、多线程优化等关键技术点,重点解决了高德红外相机数据转换、温度信息提取和Qt界面显示优化等核心问题,为红外图像处理应用开发提供可靠参考。 阅读详情

相关推荐

保姆级避坑指南:用IWR6843ISK毫米波雷达实现区域检测,从软件安装到可视化调试全流程

本文提供IWR6843ISK毫米波雷达区域检测的全流程实战指南,涵盖环境搭建、固件烧录、可视化工具配置及性能优化等关键步骤。重点解决软件版本兼容性、烧录失败等常见问题,帮助开发者高效实现精准区域检测,避免开发过程中的常见陷阱。

weixin_42653691的博客 374

SpringMVC的HiddenHttpMethodFilter详解

详解HiddenHttpMethodFilter将post请求转换为其他请求的。

weixin_47627102的博客 7543

Vue3+Vite+Electron桌面应用开发:从零到打包的完整避坑指南

本文是一份详尽的Vue3+Vite+Electron桌面应用开发实战指南。文章从项目初始化、环境配置、主进程构建、Vite深度优化,到最终的打包配置与优化,系统性地讲解了使用现代前端技术栈开发跨平台桌面应用的完整流程,并重点分享了开发与打包过程中的常见“坑点”与解决方案,旨在帮助开发者高效构建稳定可交付的桌面端应用。

hh234的博客 107

SpringMVC学习总结(六)RESTful简介HiddenHttpMethodFilter过滤器源码分析使用RESTful风格发送put和delete请求RESTful风格完整案例

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

long3359的博客 1068

c#.net使用正则表达式验证文本中是否包含手机号码或电话号码?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace RegularPhoneApp { class Program

码农 3584

【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架

基于二人爱情耦合系统动力学、稳定性与最优策略的综合性理论的数值模拟与分析

weixin_44695861的博客 1133

HiddenHttpMethodFilter

HiddenHttpMethodFilter 浏览器 form 表单只支持 GET 与 POST 请求,而 DELETE、PUT 等 method 并不支持,spring3.0 添加了一个过滤器,可以将这 些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求,该过滤器为 HiddenHttpMethodFilter。 HiddenHttpMethodFilter 的父类是 OncePerRequestFilter,它继承了父类的 doFilterInternal()

前尘忆梦的博客 960

windows10 + wsl2安装docker

一、安装wsl https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 1.1以管理员身份运行powershell 1.2执行如下命令 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 1.3重启电脑 1.4 重启电脑后,如果需要安装wsl2, 则安装官方文档继续后续操作,因我...

happytree001的博客 1568

SpringMVC之HiddenHttpMethodFilter

浏览器form表单只支持Get和POST请求,而Delete、Put等method并不支持。Spring3.0添加了过滤器HiddenHttpMethodFilter,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT和DELETE请求 Restful风格URL 一个请求 = 请求签名 + 请求方式 示例: order/1 HTTP GET :得到 id = 1 的 o...

OceanStar的博客 2375

筹码峰五句口诀,看懂主力的秘密动作!(附实战图示)

筹码图的价值在于,它不像K线那样容易造假。主力可以骗线,但骗不了筹码分布。主力在不在;是吸筹还是出货;接下来是变盘还是震荡。这五句口诀可以说是“筹码阅读的入门圣经”:单峰坚挺变盘在即,双峰对垒高抛低吸;上峰不移主力在跑,多峰林立行情不止;下峰不移不离不弃,筹码识庄稳中取利!📌市场从来不是靠猜,而是靠看清。筹码,就是主力最真实的痕迹。如果你想学会提前布局、跟庄不被甩,学会看筹码峰——这一步必须打牢!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1162

016、自动标注方案实战:用大模型(SAM/Grounding DINO)生成 YOLO 格式伪标签

本文介绍了一种利用大模型自动生成YOLO格式伪标签的实战方案。针对传统人工标注效率低、易出错的问题,作者提出结合Grounding DINO(零样本检测)和SAM(精细分割)的优势:前者快速生成候选框,后者优化边界精度。文章详细阐述了技术选型理由(平衡速度与精度)、环境搭建避坑指南(关键依赖版本)、核心三步流程(检测-分割-格式转换)以及后处理技巧(置信度分级过滤)。实验表明,该方案相比纯人工标注可节省80%时间,且经过SAM优化的边界框精度提升10-15%。特别强调了工程细节:文本描述格式、阈值设定、小目

zzfmlxs的博客 544

SpringBoot之HiddenHttpMethodFilter

默认情况下,表单只能发送GET、POST请求,如果需要发送PUT、DELETE请求呢?SpringBoot通过解决了这一问题。URI 和具体方法的映射关系,都存储在这个属性中SpringBoot之请求映射原理如果存在自定义的 HiddenHttpMethodFilter,则默认的 HiddenHttpMethodFilter 失效。

好记性不如烂笔头 1591

Arcgis栅格裁剪批处理工具

Arcgis栅格裁剪批处理工具

yilvyangguang520的博客 2172

SpringMVC用HiddenHttpMethodFilter配置Rest风格的URL

1.REST风格的URL REST的具体定义可以百度查询。 我在知乎上看见一个比较通俗易懂的回答,在这里分享一下: 2.HiddenHttpMethodFilter 浏览器中FORM表单只支持GET和POST两种类型的HTTP请求,而DELETE和PUT等请求方式并不被支持。于是spring3.0中添加了一个过滤器HiddenHttpMethodFilter,它可以通过自己

weixin_38207457的博客 364

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SpringMVC--HiddenHttpMethodFilter (REST)

SpringMVC之HiddenHttpMethodFilter (REST)REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 目前在三种主流的Web服务实现方案中,因...

KamRoseLee的博客 373

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringMVC的HiddenHttpMethodFilter (REST)

HiddenHttpMethodFilter (REST) REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。

naumy的博客 278

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringMVC_HiddenHttpMethodFilter (REST)笔记

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。 例如,Amazon.com...

baidu_41924165的博客 202

springmvc项目3-HiddenHttpMethodFilter与REST风格增删改查

0,项目springmvc003简介 通过使用org.springframework.web.filter.HiddenHttpMethodFilter拦截器、@RequestMapping的限制请求方式,来实现REST风格的增删改查。 1,按照项目springmvc001搭建一个基本的springmvc框架。 2,新建一个RestController类。 我们注解的访问地址都是

自强博客 459

SpringMVC(五):HiddenHttpMethodFilter实现REST请求

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34383618的博客 132

SpringMVC -- @PathVariable/Rest风格的URL HiddenHttpMethodFilter (2)

SpringMVC @PathVriable映射URL绑定占位符 带占位符的URL是Spring3.0新增的功能.通过@PathVariable可以讲URL中占位符参数绑定到控制器处理方法的入参中.. 还是沿用之前的那个例子的Demo index.jsp <%-- Created by IntelliJ IDEA. User: cyx Date: 2016/3/30 T

Simba_cheng的博客 1665

springmvc中的REST风格详细讲解

一、什么叫REST REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用 • 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI...

Yang_Hui_Liang的博客 2308

springMVC内置HiddenHttpMethodFilter过滤器到底是用来干啥的

看了会儿这过滤器的源码,发现好像没什么用啊。。。。 但是结合restful的架构来看的话,这个过滤器就很好用咯。 如何使用Spring MVC 使用HiddenHttpMethodFilter配置Rest风格的URL? 下面的链接给出了很好的答案。 原文链接: https://www.cnblogs.com/wwzyy/p/5838785.html...

IT_xxeedd的博客 1912

Springmvc的REST风格

Springmvc的REST风格 REST概念 REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的...

qq_29860591的博客 312

【SpringMVC】HiddenHttpMethodFilter 过滤器配置实例及源码分析

请求过滤器~

Le vent se lève, il faut tenter de vivre 1543

java的rest教程_[Java教程]SpringMVC的REST风格的四种请求方式

[Java教程]SpringMVC的REST风格的四种请求方式0 2017-08-28 22:00:25一、 在HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。·它们分别对应四种基本操作:1、GET ====== 获 取资源2、POST ======新建资源3、PUT======= 更新资源4、DELETE==== 删除资源二、REST:即 R...

weixin_39993623的博客 123

delete请求带body_SpringMVC 搭建 REST 风格请求及解决出现的问题

REST 概述 REST (Representational State Transfer)即表述性状态传递。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。在三种主流的 web 服务实现方案中,因为 REST 模式的 web 服务于复杂的 SOAP 和 XML-RPC 对比来讲明显的更加简洁。资源(Resources):网络的一个实体,或者说是网络上的一个具体信息...

weixin_39872257的博客 384
上一篇: SpringMVC 概述
下一篇: SpringMVC--------请求数据传入
HelloWorld_AA
博客等级 码龄9年 18粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值