springmvc下载文件

	@RequestMapping("/testResponseEntity")
	public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException{
		byte [] body = null;
		ServletContext servletContext = session.getServletContext();
		InputStream in = servletContext.getResourceAsStream("/files/abc.txt");
		body = new byte[in.available()];
		in.read(body);
		
		HttpHeaders headers = new HttpHeaders();
		headers.add("Content-Disposition", "attachment;filename=abc.txt");
		
		HttpStatus statusCode = HttpStatus.OK;
		
		ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(body, headers, statusCode);
		return response;
	}

示例代码中,返回值为ResponseEntity<byte[]>类型时,springmvc使用ByteArrayHttpMessageConverter对返回值进行转换。

springmvc使用MessageCoverter对请求和响应进行转换,在使用RequestEntity、ResponseEntity、@RequestBody和@ResponseBody时,就会影响MessageConverter的选用。

在返回json时,需要使用MappingJackson2HttpMessageConverter,但是spring4.4中需要我们手动配置这个converter,才会加载。

	<mvc:annotation-driven>
		<mvc:message-converters>
			<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
		</mvc:message-converters>
	</mvc:annotation-driven>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西安-晁州

Java基于ssm框架的restful应用开发

1112
来自专栏西安-晁州

Java基于ssm框架的restful应用开发

好几年都没写过java的应用了,这里记录下使用java ssm框架、jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理、jwt校验、token拦截器等...

1146
来自专栏Java 技术分享

Ajax 案例之三级联动

2726
来自专栏你不就像风一样

SpringBoot整合定时任务异步任务

823
来自专栏Java进阶架构师

自己动手写一个服务网关

如图所示,在不使用网关的情况下,我们的服务是直接暴露给服务调用方。当调用方增多,势必需要添加定制化访问权限、校验等逻辑。当添加API网关后,再第三方调用端和服...

612
来自专栏小灰灰

Guava之 Joiner & Splitter

Guava字符串拼接工具类 Joiner和Splitter 算是一个比较有意思的工具类了,可以实现字符串的分割和容器的拼接 具体的使用还是比较简单的,给个例子就...

1907
来自专栏积累沉淀

干货--Redis+Spring+Struts2实现网站计算器应用项目案例

有关redis的介绍我就不说了,可以参看我前几篇文章,redis快速入门 首先来看一下redis的应用场景 ? 下面是我这个项目的的运行的场景截图 ...

1956
来自专栏JAVA高级架构

【原创】自己动手写一个服务网关

1842
来自专栏编程坑太多

springboot (四)spring data jpa

1264
来自专栏小白鼠

SpringBoot几个注解MockMvcWireMockSwagger2@JsonViewHibernate Validator异常处理拦截方式上传下载异步处理RESTSpring Security

只有特定名称或者类型的Bean(通过@ConditionalOnMissingBean修饰)不存在于BeanFactory中时才创建某个Bean

1013

扫码关注云+社区