一般我们在浏览器的地址栏输入网址回车后,发送的是GET请求

当用表单提交时(最普遍的是用户登录),我们可以指定是GET还是POST请求,这里需要注意的是有的浏览器并不支持PUT请求,那后台restful的PUT请求对应的方法岂不是不能用了

SpringMVC为我们提供了一种解决方案,

1

2

3

我们还是用POST方式,但是我们添加了一个名为_method的隐藏域,并且值为put,同时需要在web.xml中添加一个Filter,如下:

1

2

3

4

5

6

7

8

HiddenHttpMethodFilter

org.springframework.web.filter.HiddenHttpMethodFilter

HiddenHttpMethodFilter

mcpMvc

这样虽然发送的仍然是POST请求,但是该Filter会把其转成PUT请求这样就可以调用PUT相应的方法了

这样做的缺点是前端页面我们需要额外添加一个隐藏域什么的

下面结合springMVC探讨一下JQuery发送AJAX请求的一些事

一般我们发送请求的代码如下:

1

2

3

4$.ajax({

type :'get',

url :'http://localhost/TestSpring3.2R/coc/body?name=tom'

}); 或者如下:

1

2

3

4

5

6var mydata = {'name':'tom'};

$.ajax({

type :'get',

url :'http://localhost/TestSpring3.2R/coc/body',

data : mydata

}); 那么这2种有什么区别呢?

经试验发现对于GET和POST方式,这2中没什么差别

但是对于PUT,第一种的参数可以顺利传入,但是第二种的参数就不能接受了,那么我们怎么才能得到第二种方式所穿的参数呢?

这里我们可以使用@RequestBody

@RequestBody对于GET请求是没有意义的

对于POST请求,无论你是使用第一种方式还是第二种方式,异或是2种方式同时使用,他会把所有的参数当放到@RequestBody所对应的那个参数里,输出的结果类似:

1id=ff&status=gg&name=ee

如果你要用到参数,你需要自己处理

对于PUT请求 @RequestBody所对应的那个参数的值就是通过第二种方式传进来来的值

------------------------------------我是分割线--------------------------------------

对于SpringMVC,它提供了MultiValueMap这个类,我们可以这样来接受参数

1

2

3@RequestMapping(value ="/", produces ="application/json;charset=UTF-8", method = RequestMethod.PUT)

@ResponseBody

public Map updateUser(@RequestBody MultiValueMap valueMap){ 他回把你传过来的参数,放到valueMap里,这个接口继承于Map>,key就是传过来的参数名,value就是参数值,由于可能存在同名的参数,所以value的类型是List,这样我们就可以很方便的取得参数值了

来自:http://blog.csdn.net/mfe10714022/article/details/39692305

jquery发送put请求_浅谈GET,POST,PUT发送请求相关推荐

  1. 放在请求头目的_浅谈http的几种请求方法

    脑图 目前主流使用的 HTTP 协议的请求方法是比较固定的,并没有随着大版本的提升有过多改变. 按照 常用.非常用以及扩展可以分成上图中的 3 类.要彻底掌握这些 request methods,我们 ...

  2. python flask源码解析_浅谈flask源码之请求过程

    Flask Flask是什么? Flask是一个使用 Python 编写的轻量级 Web 应用框架, 让我们可以使用Python语言快速搭建Web服务, Flask也被称为 "microfr ...

  3. java http请求原理_浅谈Spring Cloud zuul http请求转发原理

    spring cloud 网关,依赖于netflix 下的zuul 组件 zuul 的流程是,自定义 了ZuulServletFilter和zuulServlet两种方式,让开发者可以去实现,并调用 ...

  4. 《计算机辅助教学及应用实践研究》,《论文_浅谈计算机辅助教学(定稿)》

    <论文_浅谈计算机辅助教学(定稿)> (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 摘要:计算机辅助教学中要用到多媒体课件 ...

  5. Java开发的B/S程序生成并向客户端发送excel文件:浅谈MIME

    Java开发的B/S程序生成并向客户端发送excel文件:浅谈MIME 1.定义 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定 ...

  6. python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  7. php中jquery ajax请求参数,浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html asy.js function testAsync{ var temp; $.ajax( ...

  8. java如何避免恶意连续点击_浅谈一下如何避免用户多次点击造成的多次请求

    浅谈一下如何避免用户多次点击造成的多次请求 一.有效地在web客户端采用一定机制去防止重复点击提交,将大大减轻服务器端压力. 1> 定义标志位: 点击触发请求后,标志位为false量:请求(或者 ...

  9. 前端请求restful风格接口怎么传参_浅谈Restful API 的请求规范

    前言 在SpringMVC架构上进行开发,开发者一直在使用jsp.valocity或者其他页面模版作为表现层面,前端工程师需要将设计师的设计图转换为静态的html页面,然后交付给后端将静态的html页 ...

最新文章

  1. Javaweb开发环境与搭建
  2. 牛客练习赛43 Tachibana Kanade Loves Probability(快速幂)
  3. 车间生产能耗管控方案_SAREN三仁净化工程:锂电池生产车间的设计规范及方案...
  4. [转]浅谈CMD和win powershell的区别
  5. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯
  6. 元数据是什么意思_抖音飞瓜数据什么意思,飞瓜数据有什么用
  7. 转:Ajax与CustomErrors的尴尬
  8. mysql 数据增量备份_mysqlmysqldump数据备份和增量备份
  9. C语言实现贪吃蛇[内附详细步骤]
  10. 政务型CMS内容管理系统
  11. mac-数据库建模工具Workbench、PDMan
  12. 七个习惯之一:积极主动
  13. 字节员工收黑钱、操控抖音热榜,判刑了!
  14. windows桌面远程连接(以XP连windows7为例)
  15. [转]SSD:Single Shot Detector详解
  16. Spring系列:mysqlsqlserver对比
  17. 计算机二级投影运算怎么看,二级计算机中交、并、除、自然连接、投影、选择和笛卡尔积是怎么计算的?...
  18. C#里@字符d是什么意思
  19. 青草长,清梦扰,谷歌门前山羊好。
  20. code engine

热门文章

  1. LeetCode简单题之完成一半题目
  2. Camera系列规格参数
  3. NXP智能驾驶软件系统
  4. 2021年大数据常用语言Scala(十七):基础语法学习 Set
  5. Linux环境变量说明与配置
  6. Redis持久化 - RDB和AOF
  7. GlideApp 引入不了问题
  8. Unknown host 'android.oa.com'. You may need to adjust the proxy settings in Gradle.
  9. 「Django」rest_framework学习系列-用户认证
  10. [CCC 2018] 平衡树