springmvc  RequestMappingHandlerAdapter#invokeHandlerMethod 通过ServletInvocableHandlerMethod#invokeAndHandle调用目标方法,并处理返回值。

  

  如果return value != null,则通过returnvalueHandlers处理,内部会调用MessageConverter转换成相应的报文格式。

  

HttpOutputMessage outputMessage 对应的实例 是 org.springframework.http.server.ServletServerHttpResponse。
在写入数据的同时,会设置response的header,包括content-type(根据RequestMapping 的 produces 属性 计算出来)。
所以,在带有返回值的情况下,在controller中设置content-type是无效的,会被消息转换器覆盖掉。
@RequestMapping(value = "xxx", method = {RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public String handleKafkaSpecialMessage(HttpServletRequest request, HttpServletResponse response) {response.setContentType("application/json");return "xxx";
}

  改一下返回值就好了

@RequestMapping(value = "xxx", method = {RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public void handleKafkaSpecialMessage(HttpServletRequest request, HttpServletResponse response) {response.setContentType("application/json");try(OutputStream ros = response.getOutputStream()) {IOUtils.write("xxx", ros);ros.flush();} catch (IOException e) {}
}

转载于:https://www.cnblogs.com/hujunzheng/p/9405178.html

springmvc controller动态设置content-type相关推荐

  1. eclipse 设置 content type 编码格式

    前言 Eclipse Version: 2019-12 (4.14.0) 操作 打开Preferences.菜单路径为:Window–> Preferences 在搜索框中输入:content ...

  2. 阿里云存储OSS中设置上传文件content type

    阿里云存储OSS中设置上传文件ContentType 如果你使用浏览器上传文件,则浏览器会自动在header中设置正确地content type,然后对文件的访问会得到正确地回应. 如果采用编程的方式 ...

  3. SpringMVC Controller介绍(转)

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  4. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  5. 【转】SpringMVC Controller 介绍

    转自:原文url 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

  6. SpringMVC Controller中常用到的一些注解

    在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返 ...

  7. Activity动态设置主题

    Activity动态设置主题 android:theme 与 setTheme()设置透明效果并不同 一.在Manifest中设置主题 1.设置Application的主题在中添加android:th ...

  8. 一分钟弄懂SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  9. 【WPF】动态设置Binding的ConverterParameter转换器参数

    原文:[WPF]动态设置Binding的ConverterParameter转换器参数 问题:XAML中,想要在一个Bingding语句中再次Bingding. Source="{Bindi ...

最新文章

  1. EPSON机器人_SPEL+语言
  2. druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索
  3. github新建repositories后import已有code 随后同步更新
  4. [翻译][1.4.2]Flask-Admin入门介绍
  5. 基于WINCE6.0+S3C6410通过USB下载stepldr
  6. docker 初体验
  7. spring javaee_JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!
  8. 【转】LCS和LCS服务器应用程序概述
  9. java中import的使用
  10. 使用nginx反向代理获取百度MP3的真实网址
  11. CE教程:植物大战僵尸(单卡片无CD)
  12. 快速下载github上部分文件夹或文件
  13. Mac直接拔掉移动硬盘无法识别或识别要很久的解决方法
  14. 图表Chart.js入门教程
  15. 如何关掉苹果iMac开机启动声音
  16. Web Vue IV
  17. 移动WebApp开发-phoneGap+android入门(http://blog.csdn.net/cwb1128/article/details/18004505)
  18. 计算机三维造型 试题,2012上图杯三维建模试题要求
  19. PyTorch validation loss 增大,为什么 accuracy 也在增大?
  20. C++易忘知识点整理

热门文章

  1. php 自带多进程,php多进程实现
  2. AI是计算机科学,人工智能计算机科学(79种)...
  3. RuoYi-Cloud 部署篇_01(windows环境 Oracle+nginx版本)
  4. 解决在待办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题
  5. IntelliJ IDEA 2019 安装lombok
  6. Linux操作系统yum常用命令
  7. php依赖注入解决什么问题,php – 了解依赖注入的问题
  8. php脚本启动,有没有办法启动一个PHP脚本并获得状态?
  9. 图片夹_各种变调夹的优缺点、原理和使用方法
  10. oracle 对两列加唯一性束_oracle中创建unique唯一约束(单列和多列) 。