SpringMVC文件下载与JSON格式
现在JSON这种数据格式是被使用的非常的广泛的,SpringMVC作为目前最受欢迎的框架,它对JSON这种数据格式提供了非常友好的支持,可以说是简单到爆。
在我们SpringMVC中只需要添加jackjson的jar包后RequestMappingHandlerAdapter会将MappingJacksonHttpMessageConverter装配进来。而我们使用也只需要使用注解修饰就可以完成JSON格式的转换
@ResponseBoy
//@ResponseBody
@RequestMapping("/getJson")
public @ResponseBody String getJson() {
return "success";
}
我们只需要将方法使用注解@ResponseBody修饰就可以完成JSON格式自动转换,这个注解可以修饰在方法上,也可以修饰在返回值上。我们可以返回任意对象,他会自动转换成JSON格式返回给客户端。
ResponseEntity
除了使用@ResponseBody我们还可以使用ResponseEntity对象作为返回值,这两种方式效果是一样的。
@RequestMapping("/getJson2")
    public ResponseEntity<String> getJson2() {
        ResponseEntity<String> responseEntity = new ResponseEntity<>("<h1>ResponseEntity</h1>", HttpStatus.OK);
        return responseEntity;
    }
@RequestBody
该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
<form action="testRequestBody2" method="POST">
<input type="text" name="username"><br>
<input type="password" name="userpass"><br>
<input type="submit" value="登陆">
</form>
@RequestMapping("/testRequestBody")
    public String hello(@RequestBody String body) {
        System.out.println(body);
        return "hello";
    }
他会将我们这个表单中的数据转换成字符串类型

HttpEntity
这个对象使用起来效果是与@RequestBody效果是一致的。
@RequestMapping("/testHttpEntity")
    public String getJson2(HttpEntity<String> entity) {
        System.out.println(entity.getBody());
        return "hello";
    }
文件下载功能
使用ResponseEntity<byte[]>来实现文件下载。文件下载只需要将文件输出类型该为可以被下载的文件类型设置为ResponseEntity<byte[]>即可。
@RequestMapping("/downFile")
    public ResponseEntity<byte[]> testdownFile(HttpSession session) throws IOException {
        ServletContext servletContext = session.getServletContext();
        InputStream in = servletContext.getResourceAsStream("downloads/down.txt");
        byte[] bytes = FileCopyUtils.copyToByteArray(in);
        HttpHeaders header = new HttpHeaders();
        header.add("Content-Disposition", "attachment;filename=down.txt");
        ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(bytes, header, HttpStatus.OK);
        return entity;
    }
filename这个属性是文件下载的文件名字。
SpringMVC文件下载与JSON格式的更多相关文章
- SpringMvc+ajax 实现json格式数据传递
		传JSON对象 前端 function test () { var param = {username : "yitop"}; $.ajax({ timeout : 20000, ... 
- 扩展SpringMVC以支持绑定JSON格式的请求参数
		此方案是把请求参数(JSON字符串)绑定到java对象,,@RequestBody是绑定内容体到java对象的. 问题描述: <span style="font-size: x-sma ... 
- SpringMVC通过实体类返回json格式的字符串,并在前端显示
		一.除了搭建springmvc框架需要的jar包外,还需要这两个jar包 jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar 二.web,. ... 
- SpringMVC对ServletAPI的支持和JSON格式的转换
		package com.hongcong.controller; import java.io.UnsupportedEncodingException; import java.net.URLDec ... 
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
		SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析 一:问题demo展示 ... 
- Springmvc 的post请求的json格式参数
		背景: 这两天在项目中遇到了一个问题.我的环境是springmvc4.1.9,写了几个可以用ajax请求的接口(ajax.jsonp 调用正常).突然一时兴起就用 HTTP 请求的工具(比如火狐浏览器 ... 
- SpringMVC 实现返回一段数据 & 实现自动发送json格式数据 - AJAX
		实现返回一段数据 - AJAX 当页面通过AJAX来访问Controller时,期望得到的不是一个页面而是一段数据,此时可以使用如下方法,直接向相应中写入数据: /** * 直接向响应中写出数据,通常 ... 
- SpringMVC前后台数据传递中Json格式的相互转换(前台显示格式、Json-lib日期处理)及Spring中的WebDataBinder浅析
		两个方向: 一.前台至后台: Spring可以自动封装Bean,也就是说可以前台通过SpringMVC传递过来的属性值会自动对应到对象中的属性并封装成javaBean,但是只能是基本数据类型(int, ... 
- springMVC框架下返回json格式的对象,list,map
		原文地址:http://liuzidong.iteye.com/blog/1069343 注意这个例子要使用jQuery,但是jquery文件属于静态的资源文件,所以要在springMVC中设置静态资 ... 
随机推荐
- 【JS】正则向前查找和向后查找
			正向查找:就是匹配前面或后面是什么内容的,所以分类是:正向前查找,正向后查找 负向查找:就是匹配前面或后面不是什么内容的,所以分类是:负向前查找,负向后查找 操作符 说明 描述 (?=exp) 正 ... 
- 关于reduce的参数问题
			ECMAScript 5还新增了两个缩小数组的方法: reduce() 和 reduceRight() .这两个方法都会迭代数组的所有项,然后构建一个最终返回的值.其中, reduce() 方法从数组 ... 
- 事件对象event
			每个事件都有默认事件event对象 e.target 事件目标对象 e.keycode 键码 e.stopPropogation();//阻止默认事件 
- 【Git】在GitHub或OSChina上新建项目后,如何在本地第一次push代码到服务器
			场景1:将本地代码push到远程仓库上的master主分支 #初始化git,执行init命令后,默认新建本地分支master git init #关联远程仓库 git remote add origi ... 
- Django学习手册 - pycharm 安装/建立第一个网站hello world
			步骤阐述: 1.下载 pycharm 安装包,安装pycharm 2.打开pycharm软件,新建工程项目 3.新建APP,配置url,启动项目 步骤1: pycharm 官网下载: https:// ... 
- [Docker]Docker拉取,上传镜像到Harbor仓库
			需求 因为项目的需求,需要制作一个基于tomcat的镜像.那么前提就是,需要有tomcat的基础镜像. 怎么做 我的思路跑偏了,本来以为是需要将tomcat下载下来,然后通过docker命令,让它成为 ... 
- 876. Middle of the Linked List
			1. 原始题目 Given a non-empty, singly linked list with head node head, return a middle node of linked li ... 
- ppp 完全理解(二)【转】
			转自:https://blog.csdn.net/tianruxishui/article/details/44057717 ppp 完全理解(二) pppd 协议及代码分析 作者:李圳均 日期:20 ... 
- TextArea 保存时换行符处理
			后台数据保存时就要处理“\r\n",替换成”<br />",前台(html)页面显示时再做下处理. 自己是mvc页面,用到了两个方法:Html.Raw(),以及Http ... 
- CLR via C#关于泛型(Generics )的摘录
			泛型,是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”. 简单的说,开发人员先定义好一个算法,比如排序.搜索.交换.比较或者转换等.但是,定义算法的开发人员并不设改算法 ... 
