一:处理Json

1.添加jar包

  添加json需要的包

2.后端返回json对用的对象或者集合

  使用ResponseBody标签

 package com.spring.it.json;

 import java.util.Collection;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
}
}

3.前段

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#testJson").click(function(){
var url=this.href;
var args={};
$.post(url,args,function(data){
for(var i=0;i<data.length;i++){
var id=data[i].id;
var lastName=data[i].lastName;
alert(id+":"+lastName);
}
});
return false;
});
})
</script>
<title>Insert title here</title>
</head>
<body>
<br>
<a href="emps">list emps</a>
<br><br>
<a href="testJson" id="testJson">Test Json</a>
</body>
</html>

4.返回json

 [{
"id": 1001,
"lastName": "E-AA",
"email": "aa@163.com",
"gender": 1,
"department": {
"id": 101,
"departmentName": "D-AA"
},
"birth": null,
"salary": null
}, {
"id": 1002,
"lastName": "E-BB",
"email": "bb@163.com",
"gender": 1,
"department": {
"id": 102,
"departmentName": "D-BB"
},
"birth": null,
"salary": null
}, {
"id": 1003,
"lastName": "E-CC",
"email": "cc@163.com",
"gender": 0,
"department": {
"id": 103,
"departmentName": "D-CC"
},
"birth": null,
"salary": null
}, {
"id": 1004,
"lastName": "E-DD",
"email": "dd@163.com",
"gender": 0,
"department": {
"id": 104,
"departmentName": "D-DD"
},
"birth": null,
"salary": null
}, {
"id": 1005,
"lastName": "E-EE",
"email": "ee@163.com",
"gender": 1,
"department": {
"id": 105,
"departmentName": "D-EE"
},
"birth": null,
"salary": null
}]

5.请求

  

二:HttpMessageConverter

1.工作原理

  使用HttpMessageConverter<T>将请求信息转化并绑定到处理方法的入参中,或将响应结果转化为对应类型的响应信息。

  主要提供了两种途径:

  @RequestBody与@ResponseBody对处理方法进行标注

  HttpEntity与ResponseEntity作为处理方法的入参或返回值

三:案例--上传--注解

1.index

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#testJson").click(function(){
var url=this.href;
var args={};
$.post(url,args,function(data){
for(var i=0;i<data.length;i++){
var id=data[i].id;
var lastName=data[i].lastName;
alert(id+":"+lastName);
}
});
return false;
});
})
</script>
<title>Insert title here</title>
</head>
<body>
<br>
<a href="emps">list emps</a>
<br><br>
<a href="testJson" id="testJson">Test Json</a>
<br><br>
<form action="testHttpMessageConverter" method="post" enctype="multipart/form-data">
File:<input type="file" name="file"/>
Desc:<input type="text" name="desc"/>
<input type="submit" value=Submit"">
</form> </body>
</html>

2.处理方法

 package com.spring.it.json;

 import java.util.Collection;
import java.util.Date; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
} @ResponseBody
@RequestMapping(value="/testHttpMessageConverter")
public String testHttpMessage(@RequestBody String body) {
System.out.println("body:"+body);
return "helloWorld"+new Date();
}
}

3.效果

  

  

四:案例--下载--处理方法

1.请求

  <a href="testResponseEntity">Test ResponseEntity</a>

2.处理方法

 package com.spring.it.json;

 import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Date; import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
} @ResponseBody
@RequestMapping(value="/testHttpMessageConverter")
public String testHttpMessage(@RequestBody String body) {
System.out.println("body:"+body);
return "helloWorld"+new Date();
} @RequestMapping("/testResponseEntity")
public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws Exception{
byte[] body=null;
ServletContext context=session.getServletContext();
InputStream in=context.getResourceAsStream("/file/ADC.txt");
body=new byte[in.available()];
in.read(body);
HttpHeaders headers=new HttpHeaders();
headers.add("Content-Disposition", "attament;fileName=ADC.txt");
HttpStatus status=HttpStatus.OK;
ResponseEntity<byte[]> response=new ResponseEntity<>(body,headers,status);
return response;
} }

3.效果

  浏览器上:

  

020 SpringMVC返回Json的更多相关文章

  1. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  2. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  3. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  4. SpringMVC返回Json,自定义Json中Date类型格式

    http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...

  5. 配置SpringMVC返回JSON遇到的坑

    坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar ...

  6. SpringMVC返回JSON数据时日期格式化问题

    https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring   在运用SpringMVC框架开发时,可 ...

  7. spring入门(七)【springMVC返回json串】

    现在多数的应用为了提高交互性多使用异步刷新,即在不刷新整个页面的情况下,只刷新局部,局部刷新用得最多就是ajax,ajax和后台进行交互的数据格式使用的最多的是JSON,这里简单描述,在springm ...

  8. springmvc返回json字符串中文乱码问题

    问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...

  9. SpringMVC返回JSON方案

    SpringMVC已经大行其道.一般的,都是返回JSP视图.如果需要返回JSON格式,我们大都掌握了一些方法. 在ContentNegotiatingViewResolver之前,一般使用XmlVie ...

随机推荐

  1. luogu P2516 [HAOI2010]最长公共子序列

    传送门 首先那个\(O(n^2)\)的dp都会吧,不会自己找博客或者问别人,或是去做模板题(误) 对以下内容不理解的,强势推荐flash的博客 我们除了原来记录最长上升子序列的\(f_{i,j}\), ...

  2. SpringBoot2.x配置文件讲解

    SpringBoot2.x配置文件讲解 简介:SpringBoot2.x常见的配置文件 xml.yml.properties的区别和使用 xml.properties.json.yaml 1.常见的配 ...

  3. VIM for C++ 一键安装配置

    执行: wget https://raw.github.com/ma6174/vim/master/setup.sh -O ma6174_vim_setup.sh && bash ma ...

  4. IP分片丢失重传 - Sacrifice的日志 - 网易博客

        尽管IP分片看起来是是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报.为什么会发生这种情况呢?     因为IP层本身没有超时重传的机制--由更高层来负责超时和重传(TC ...

  5. CC254x/CC2540/CC2541库函数速查(转)

    hci.h 转自:http://blog.csdn.net/xiaoleiacmer/article/details/44036607#t1 //分配内存,应用程序不应该调用这个函数. void *H ...

  6. 关注网页的更新状况,了解最新的handsup 消息.

    // 第一部分是网页截图和源码保存 // upon page load. var fs = require("fs"); var resourceWait = 300, maxRe ...

  7. kafka系列三、Kafka三款监控工具比较

    转载原文:http://top.jobbole.com/31084/ 通过研究,发现主流的三种kafka监控程序分别为: Kafka Web Conslole Kafka Manager KafkaO ...

  8. tomcat jsp页面乱码解决

    浏览器接收服务器响应的中文参数: JSP页面中告诉浏览器使用什么编码: <%@ page language="java" contentType="text/htm ...

  9. 015_NGINX作为WebSocket Proxy的设置

    产研那边有通过nginx代理进行长连接的需求,咱们都知道默认nginx只支持短连接的,使用长连接需要单独配置 一. websocket协议提供创建一种支持在server和client之前双向通信的we ...

  10. aliyun服务器ecs被ddos后无法被zabbix-server监控的处理

    ecs绑定的域名被ddos攻击后,阿里云黑洞ecs服务器一个月,此时zabbix服务端无法联系到zabbix-agent会一直报错 解决办法: 1.在ecs前添加slb并把之前指向ecs的域名a.ch ...