(九)springmvc之json的数据请求(客户端发送json数据到服务端)
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数据到服务端)的更多相关文章
- SpringMVC客户端发送json数据时报400错误
当测试客户端发送json数据给服务器时,找不到响应路径? 原来是参数类型不符,即使是json也要考虑参数的个数和类型 解决:将age请求参数由"udf"改为"3" ...
- ajax数据请求2(json格式)
ajax数据请求2(json格式) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- socket小程序写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回
写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回 本机id是192.168.xx.xy 服务端 import socket soc = socket.soc ...
- WebSocket安卓客户端实现详解(三)–服务端主动通知
WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 We ...
- (8)Linux(客户端)和Windows(服务端)下socket通信实例
Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows Client端 #include <st ...
- 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)
查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...
- WebService或HTTP服务端接收请求转发消息到另一个服务端-实现思路
1.需求结构(WebService) A客户端<->B服务端<->C服务端 说明: a.在B服务端上面添加配置项(1.是否转发消息到C服务端:2.C服务端IP和端口): b.A ...
- 客户端通过HTTP协议与服务端交换数据
客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...
- curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?
1.python使用flask+flask_restfull框架写的api接口,做为服务 2.curl 做为客户端发送数据 from flask import request curl发送json的方 ...
随机推荐
- Cookie的使用(js-cookie插件)
js-cookie 官方文档 里面就详细的介绍了es5怎么引用,以下是ES6以上的用户 一.安装 npm install js-cookie --save 二.引用 import Cookies fr ...
- 画布之ShapeDrawable
package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.Canvas ...
- 002-创建型-01-工厂方法模式(Factory Method)
一.概述 定义一个创建对象的接口,但让实现这个接口的类来决定实例化那个类,工厂方法让类的实例化推迟到子类中进行. 工厂方法模式(FACTORY METHOD)同样属于一种常用的对象创建型设计模式,又称 ...
- win10安装RabbitMQ
简单来说,两步走:先装erlang,再装rabbitmq.rabbitmq是用erlang开发的,既然erlang是一种语言,你可以把它当做Jdk来安装. 1.下载erlang安装包(官网下载地址ht ...
- java代码规范好文推荐
近期发现一遍好文章 看过之后觉得自己代码存在太多的问题 特此记录一下 和大家一起分享 https://xwjie.github.io/rule/
- javascript模拟生成uuid
function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r ...
- Release报错Debug无错
代码在Release模式下会crash,Debug模式下可以运行,最后定位到原因 for (size_t j = 0; j < ids.size()-1; ++j) { } 发现问题是Relea ...
- Linux - Linux命令行常用快捷键
Common Shortcut Key 用途 快捷键 说明 光标移动 Ctrl + a 把光标移到行首 Ctrl + e 把光标移到行尾 Ctrl + x 在 EOL 和当前位置移动光标 输入编辑 C ...
- go context源码解析
go 的context贯穿整个goroutine的运行控制的中枢,可以实现执行的生命周期的控制. Context是一个接口,他派生了context.emptyCtx(TODO),cancelCtx,t ...
- 如何找到linux centos7 中 redis.conf
我们假设redis正在运行,但是我们找不带redis的配置文件redis.conf. 正确的示范: (1)systemctl status redis ● redis.service - LSB: s ...