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交 ... 
随机推荐
- Flask框架(一):介绍与环境搭建
			1.Flask介绍 Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核, ... 
- HTML5其他标签应用
			HTML5 是下一代 HTML 标准. HTML5 多媒体 音频标签 <audio src=" "></audio> 视频标签 <video src= ... 
- 编写优美Android注释的常用语法
			编写优美Android注释的常用语法 短期目标是定期能出一篇简文,希望自己能坚持下去~~~~( ̄_, ̄ ) 附上Android君 今天要分享的是关于Android注释系统的一些强大功能!! 实 ... 
- python数据处理书pdf版本|内附网盘链接直接提取|
			Python数据处理采用基于项目的方法,介绍用Python完成数据获取.数据清洗.数据探索.数据呈现.数据规模化和自动化的过程.主要内容包括:Python基础知识,如何从CSV.Excel.XML.J ... 
- PHP getDocNamespaces() 函数
			实例 返回 XML 文档的根节点中声明的命名空间: <?php$xml=<<<XML高佣联盟 www.cgewang.com<?xml version="1.0 ... 
- sql_to_csv
			将需要信息 导出成 csv,txt等格式 create or replace procedure sql_to_csv(p_query in varchar2, --sql query stateme ... 
- [转]Java CPU 100% 排查技巧
			文章来源:微信公众号:猿天地 平时多积累一点,这样在遇到问题的时候就少句求人的话.如果在实际的开发中遇到CPU 100%问题,要怎么排查呢?如果你没有遇到过这个问题,请先自己思考10s,如果你遇到过, ... 
- JVM进行篇
			结合字节码指令理解Java虚拟机栈和栈帧 栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的 ... 
- 串口通信—USB转串口
			如何使用c库printf 
- JVM与Java体系结构
			参考笔记:https://blog.csdn.net/weixin_45759791/article/details/107322503 前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问 ... 
