springMVC入门(六)------json交互与RESTFul风格支持
简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。由于其简单易用,目前常用来通过AJAX与后台进行交互。springMVC对于接收、发送JSON数据也提供了支持,并能方便的将JSON数据与对象进行相互转换。
环境准备
由于springMVC对JSON的支持是基于jackson的,因此需引入jar包
配置pom.xml
<!-- Jackson -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.4</version>
</dependency>
对springMVC的处理器适配器注入JSON转换器
<!-- 处理器适配器配置 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<!-- 配置jackson转换器 -->
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
若使用的是MVC注解驱动,则无需再单独配置
<mvc:annotation-driven></mvc:annotation-driven>
测试代码
@RequestBody注解可将请求的JSON数据自动转换为Controller方法的形参
@ResponseBody注解可将返回的对象转换成JSON数据输出
@RequestMapping("/queryAccount.action")
@ResponseBody
//@RequestBody 前提:请求ContentType必须是application/json,不能是application/x-www-form-urlencoded或其它
public Account queryAccount(@RequestBody User user) throws Exception {
System.out.println(user.getUsername());
System.out.println(user.getPassword());
Account account = new Account();
account.setId("123");
account.setName("nlskyfree");
account.setMoney("3423.43");
return account;
}
JSP页面,使用原生AJAX发出请求
需引入json2.js进行js上的JSON数据与对象的转换
<html>
<script type="text/javascript" src="/springMVC/json2.js"></script>
<script type="text/javascript">
var xmlHttp;
function updateData() {
//4:响应已完成;您可以获取并使用服务器的响应了。
if(xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
alert(response);
var obj = JSON.parse(response);
document.getElementById(3).value = obj.id;
document.getElementById(4).value = obj.name;
document.getElementById(5).value = obj.money;
}
}
//AJAX提交数据
function submit() {
//获得提交数据
var username = document.getElementById(1).value;
var password = document.getElementById(2).value;
//发出AJAX请求
xmlHttp = getXMLHttpRequest();
var url = "/springMVC/queryAccount.action";
//开启连接
xmlHttp.open("POST", url, true);
//返回函数
xmlHttp.onreadystatechange = updateData;
//设置数据为JSON格式
xmlHttp.setRequestHeader("Content-Type", "application/json");
var data = {"username": username, "password" : password};
//发送请求
xmlHttp.send(JSON.stringify(data));
}
//兼容各浏览器获取XMLHttpRequest
function getXMLHttpRequest() {
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
</script>
<body>
<h2>Hello World!</h2>
用户名:<input id="1" name="username" type="text"/>
密码:<input id="2" name="password" type="password"/><br/>
<br/>
<input type="button" value="查 询" onclick="submit();"/><br/>
<br/>
账户编号<input id="3" type="text"/><br/>
账户名称<input id="4" type="text"/><br/>
账户金额<input id="5" type="text"/>
</body>
</html>
结果:
springMVC入门(六)------json交互与RESTFul风格支持的更多相关文章
- Spring MVC之JSON数据交互和RESTful的支持
1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...
- SpringMVC+Json构建基于Restful风格的应用(转)
一.spring 版本:spring-framework-3.2.7.RELEASE 二.所需其它Jar包: 三.主要代码: web.xml <?xml version="1.0&qu ...
- springMVC上传图片,json交互(三)
@RequestMapping 通过@RequestMapping注解可以定义不同的处理器映射规则. @RequestMapping(value="item")或@RequestM ...
- <SpringMvc>入门六 异常处理
如果不做异常处理,那么一直将错误向上抛出,则会最后在页面上显示错误代码 服务启动后,访问test1方法,页面会报500 为了提示友好的错误页面,所以需要做异常处理 1.编写自定义异常类(做提示信息的) ...
- 1.4(Spring MVC学习笔记)JSON数据交互与RESTful支持
一.JSON数据交互 1.1JSON简介 JSON(JavaScript Object Notation)是一种数据交换格式. 1.2JSON对象结构 {}代表一个对象,{}中写入数据信息,通常为ke ...
- SpringMVC(三)Restful风格及实例、参数的转换
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...
- 『政善治』Postman工具 — 3、补充:restful风格接口的项目说明
目录 (一)RESTful架构风格特点 1.统一接口风格 2.规范的HTTP请求方法 3.HTTP响应码 4.什么是无状态 (二)JSON数据格式说明 1.什么是JSON 2.JSON格式的特点 3. ...
- SpringMVC详解(六)------与json交互
Json(JavaScript Object Notation),它是一种轻量级数据交换格式,格式简单,易于读写,目前使用特别广泛.那么这篇博客我们主要谈谈在 SpringMVC 中,如何对 json ...
- springMVC学习(11)-json数据交互和RESTful支持
一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...
随机推荐
- 前端学习(十六):JavaScript运算
进击のpython ***** 前端学习--JavaScript运算 在这一节之前,应该做到的是对上一节的数据类型的相关方法都敲一遍,加深印象 这部分的知识的特点就是碎而且杂,所以一定要多练~练习起来 ...
- 定义 WSGI 接口
# WSGI服务器调用 def application(environ,start_response): start_response('200 OK',[('Content-Type','text/ ...
- PHP 5 echo 和 print 语句
PHP 5 echo 和 print 语句 在 PHP 中有两个基本的输出方式: echo 和 print. 本章节中我们会详细讨论两个语句的用法,并在实例中演示如何使用 echo 和 print. ...
- Java垃圾回收原来这么简单
什么是垃圾回收? 垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露.有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和 ...
- MyBatis-Plus使用(4)-集成SpringBoot
我这里使用的MyBatis-Plus是当前最新的3.2.0版本, 1. 引入需要的jar,基础jar包括: <dependencies> <dependency> <gr ...
- 安装Hive 使用beeline 链接 出现 User: AAA is not allowed to impersonate BBB
AAA 指的是 hdfs 文件系统的用户 BBB 是hive 设置的 hiveserver2 配置文件中的登陆用户名 在hadoop 配置如下 <property> <name> ...
- ios数组基本用法和排序大全
1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject: ...
- GPS位置显示在地图上
源码分析博客地址:https://blog.csdn.net/wuquan_1230/article/details/79614974 工具下载地址:http://download.csdn.net/ ...
- 用 Python 写个消消乐小游戏
提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受欢迎程度可见一斑,本文我们使用 Python 来做个简单的消消乐小游戏. 很多人学习python,不 ...
- JS 移动端轮播图案例
body { margin:; } .hearder { width: 100%; height: 150px; position: relative; } ul { list-style: none ...