SpringMVC文件下载与JSON格式(七)

2021-05-20 09:29

阅读:656

标签:session   int   val   图片   ret   处理   ada   str   isp   

点击查看上一章

现在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中方法的参数上。

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 entity) {
        System.out.println(entity.getBody());
        return "hello";
    }

 

文件下载功能

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

 

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

 

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

 

SpringMVC文件下载与JSON格式(七)

标签:session   int   val   图片   ret   处理   ada   str   isp   

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


评论


亲,登录后才可以留言!