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这个属性是文件下载的文件名字。

原文地址:https://www.cnblogs.com/SimpleWu/p/9739436.html

时间: 2024-10-08 02:25:14

SpringMVC文件下载与JSON格式(七)的相关文章

SpringMVC 统一返回JSON格式数据到前端

有时在给APP做接口功能的时候,都是返回JSON格式的数据,所以最好的只好在工程设置一个统一的数据返回方式 在SpringMVC 直接配置XML可以产生这种配置,比较简单 Spring的版本我用的是4.3.3的 <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter&qu

springMVC传递JSON格式数据

这两天在使用SpringMVC传递JSON数据格式,出现了各种令人头大的问题,但是功夫不负有心人,最后还是解决了问题.在这里记录下来供大家参考,如有不对,还请各位大侠指正. 在SpringMVC传递JSON数据格式需要加入两个jar包:com.springsource.org.codehaus.jackson-1.4.2.jar,com.springsource.org.codehaus.jackson.mapper-1.4.2.jar. 实体JavaBean:Person  具有tname,g

SpringMVC对ServletAPI的支持和JSON格式的转换

package com.hongcong.controller; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import javax.servlet.http.Cookie; import javax.servlet.http.HttpS

SpringMVC返回JSON格式

采用RESTful方式开发API的时候,需要返回JSON格式的数据. 但是怎么样才最方便呢? 1.   SpringMVC集合com.fastxml.jackson.core下面的三个包 jackson-core,jackson-databind ,jackson-annotions       配置在POM.xml文件中, 2.   在@controll类里面使用@ResponseBody注解函数 3.   在Spring配置文件中添加<mvc:annotion-driven />,这个配置

SpringMVC通过实体类返回json格式的字符串,并在前端显示

一.除了搭建springmvc框架需要的jar包外,还需要这两个jar包 jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar 二.web,.xml配置 classpath:spring-servlet.xml指定springmvc配置文件的位置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" x

Springmvc返回JSON格式到页面中文乱码问题

我是通过@ResponseBody注解的方式实现json格式传到页面的方法.首先查看源代码如下图,springmvc的默认编码是“ISO-8859-1”; 而我们通常编码都是使用UTF-8, 所以我们需要在springmvc的注解配置中处理json格式的时候应该修改一下默认的编码格式. springmvc配置文件中代码如下: <mvc:annotation-driven> <mvc:message-converters register-defaults="true"

SpringMVC环境下实现的Ajax异步请求(JSON格式数据)

一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在spring配置文件"springmvc-servlet.xml"中添加json解析相关配置,我这里的完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

springmvc 后台向页面EasyUI的Datagrid传递数据(JSon格式)

===============EasyUIDatagrid 分页==================== EasyUIDatagrid 需要提供的JSon格式为:total和rows,所以我们只需要在后台中返回一个JSon格式为total和rows //定义一个EasyUIDatagridResult 类来包装JSon数据 public class EasyUIDatagridResult { private long total;  //返回JSon中的total值 private List<

SpringMVC 目标方法返回 json 格式数据

第一种方法:使用  @ResponseBody 注解来实现 1.Spring MVC 配置 <mvc:annotation-driven></mvc:annotation-driven>.添加该配置的作用如下,而我们用到的是... 2.添加 jackson-annotations-2.1.5.jar.jackson-core-2.1.5.jar.jackson-databind-2.1.5.jar 三个注解. 3.在 handler 目标方法中返回集合类型数据并添加 @Respon