(九)springmvc之json的数据请求(客户端发送json数据到服务端)

时间:2022-09-08 13:08:47

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String path = request.getContextPath();
%>
<html> <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.json-2.4.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.form.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function test_2(){
var postURL = "<%=request.getContextPath()%>/jsonController/receive_jsonData_2?date="+new Date()+""; //第2种简单的方法
var formData = jQuery("#json_form2").serializeArray();
//将这个数组转为json的对象。
var jsonData = convertArray(formData); //将json对象转为字符串后,才能发送。
var jsonDataStr = jQuery.toJSON(jsonData);
jQuery.ajax({
//请求
type: "POST",
url: postURL,
data: jsonDataStr,
contentType:"application/json",
//返回
dataType: "json",
success: function(msg){
alert( "Data Saved: " + msg );
}
}); } function convertArray(o) { //主要是推荐这个函数。它将jquery序列化后的值转为name:value的形式。
var v = {};
for (var i in o) {
if (typeof (v[o[i].name]) == 'undefined') v[o[i].name] = o[i].value;
else v[o[i].name] += "," + o[i].value;
}
return v;
} </script>
</head>
<body> <form method="post" id="json_form2" action="">
<input type="text" name="dogid" id="dogid" value="用户名"/>
<input type="text" name="dogname" id="dogname" value="复选框1"/>
<input type="button" value="发送是一个json字符串" onclick="test_2();"/>
</form>
</body>
</html>

controller

/**
* Spring中接收json对象的2种方式
*
* RequestBody DogBean dogBean
*
* 不加RequestBody,表示接收的是一个普通的GET或者POST的请求,请求中的参数与Bean中的属性一致。 Bean即可接收。
*
* 加RequestBody,表示接收的是一个json字符串的请求数据,Spring会自动将json字符串转成json对象 。
*
*
*/
@RequestMapping(value = "/receive_jsonData_2")
public String receive_jsonData_2(@RequestBody DogBean dogBean) {
System.out.println("dogBean = " + dogBean);
System.out.println(dogBean.getDogid() + "\t" + dogBean.getDogname());
return null;
}
  • 如果这里不加@RequestBody ,那么将无法将request里的参数封装到dogBean中,因为request里的数据格式是json格式,而自动封装的格式为“dogid=1&dogname=dog1” 这种格式才能自动封装。

(九)springmvc之json的数据请求(客户端发送json数据到服务端)的更多相关文章

  1. SpringMVC客户端发送json数据时报400错误

    当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3&quot ...

  2. ajax数据请求2(json格式)

    ajax数据请求2(json格式) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  3. socket小程序写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回

    写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回 本机id是192.168.xx.xy 服务端 import socket soc = socket.soc ...

  4. WebSocket安卓客户端实现详解&lpar;三&rpar;–服务端主动通知

    WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 We ...

  5. (8)Linux(客户端)和Windows(服务端)下socket通信实例

    Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows   Client端 #include <st ...

  6. 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)

    查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...

  7. WebService或HTTP服务端接收请求转发消息到另一个服务端-实现思路

    1.需求结构(WebService) A客户端<->B服务端<->C服务端 说明: a.在B服务端上面添加配置项(1.是否转发消息到C服务端:2.C服务端IP和端口): b.A ...

  8. 客户端通过HTTP协议与服务端交换数据

        客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...

  9. curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?

    1.python使用flask+flask_restfull框架写的api接口,做为服务 2.curl 做为客户端发送数据 from flask import request curl发送json的方 ...

随机推荐

  1. 赵文豪 GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb example指令进入gdb调试器: 使用gdb调 ...

  2. C&num; 获得MP4时长

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  3. 常见mongo命令

    @(编程) 查询 db.getCollection('SalaryEntity').find({"Month" : "201601"}) db.getColle ...

  4. 高级C&plus;&plus;开发工程师综合测试题(风林火山)

    题目要求:代码要求能够直接编译运行 1.       请实现一个函数:凑14:输入很多个整数(1<=数值<=13),任意两个数相加等于14就可以从数组中删除这两个数,求剩余数(按由小到大排 ...

  5. ubuntu12&period;04&amp&semi;15&period;04 安装lamp(12&period;04为主)

    ubuntu 12.04&15.04下安装lamp环境 注意:如果是ubuntu15.04下,apache2.4.10的话,直接在/etc/apache2/apache2.conf文件的后边直 ...

  6. C&num; 语言规范&lowbar;版本5&period;0 &lpar;第19章 附录A&lowbar;文档注释&rpar;

    A. 文档注释 C# 提供一种机制,使程序员可以使用含有 XML 文本的特殊注释语法为他们的代码编写文档.在源代码文件中,可以使用特定形式的注释来指导工具从这些注释及其后的源代码元素生成 XML.使用 ...

  7. idea 切换新项目 新窗口 原窗口

    选择 file--setting. 在新打开的窗口中选择 Appearance & Behavior--System Settings 点 Confirm window to open pro ...

  8. Python学习笔记(二):字典

    字典由多个键及与其对应的值构成的键值对构成,字典中键唯一,值不唯一. 1)dict 函数: >>>items=[('name','lilei'),('age',12)] >&g ...

  9. 冰精冻西瓜&lbrack;P3787洛谷&rsqb;

    题目描述 琪露诺是拥有操纵冷气程度的能力的妖精,一天她发现了一片西瓜地.这里有n个西瓜,由n-1条西瓜蔓连接,形成一个有根树,琪露诺想要把它们冷冻起来慢慢吃. 这些西瓜蔓具有神奇的性质,可以将经过它的 ...

  10. 【LeetCode算法-14】Longest Common Prefix

    Write a function to find the longest common prefix string amongst an array of strings. If there is n ...