博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC文件下载与JSON格式
阅读量:6445 次
发布时间:2019-06-23

本文共 2128 字,大约阅读时间需要 7 分钟。

现在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
getJson2() { ResponseEntity
responseEntity = new ResponseEntity<>("

ResponseEntity

", HttpStatus.OK); return responseEntity; }

@RequestBody

该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

@RequestMapping("/testRequestBody")    public String hello(@RequestBody String body) {        System.out.println(body);        return "hello";    }

他会将我们这个表单中的数据转换成字符串类型

HttpEntity

这个对象使用起来效果是与@RequestBody效果是一致的。

 

@RequestMapping("/testHttpEntity")    public String getJson2(HttpEntity
entity) { System.out.println(entity.getBody()); return "hello"; }

 

文件下载功能

使用ResponseEntity<byte[]>来实现文件下载。文件下载只需要将文件输出类型该为可以被下载的文件类型设置为ResponseEntity<byte[]>即可。 

 

@RequestMapping("/downFile")    public ResponseEntity
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
entity = new ResponseEntity
(bytes, header, HttpStatus.OK); return entity; }

 

filename这个属性是文件下载的文件名字。

 

转载于:https://www.cnblogs.com/SimpleWu/p/9739436.html

你可能感兴趣的文章
keepalived+nginx实现双机热备
查看>>
linux远程登录ssh免密码
查看>>
Dojo学习笔记(八):Dojo布局——面板
查看>>
linux挂载ntfs
查看>>
SQLServer判断指定列的默认值是否存在,并修改默认值
查看>>
heartbeat+drbd+mysql:实现最廉价的高可用组合
查看>>
解决NGINX+PHP-FPM failed to ptrace(PEEKDATA) Input/output error出错问题
查看>>
splice和sendfile
查看>>
基于rsync+inotify实现数据实时同步传输
查看>>
【No.11 默认实参的匹配】
查看>>
一键生成表结构说明文档的参考,数据字典生成方式参考
查看>>
CCNP课堂练习一:详解交换机vlan的介绍及通过交换机从逻辑上划分区域配置
查看>>
awk实际应用:文本合并
查看>>
Silverlight发布时的优化工作(2)
查看>>
Visual Studio 2010 Ultimate测试体系结构
查看>>
推荐《认知与设计——理解UI设计准则》读书笔记
查看>>
Windows 2003 AD升级至Windows 2012 AD之DHCP服务器迁移
查看>>
创建和管理表
查看>>
手机视频开发包
查看>>
Nagios短信报警功能通过飞信实现
查看>>