,,解决response.setHeader设置下载文件名无效的问题

,,解决response.setHeader设置下载文件名无效的问题

本文主要介绍如何解决response.setHeader设置的下载文件名无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。

目录

response.setHeader设置下载文件名无效。response.setheader无效的原因之一是输出缓冲区。

response.setHeader设置下载文件名无效

response . set content type(' application/octet-stream ')。

response . set header(' Content-Disposition ','附件;filename=down . xls ');

设置完成后,点击下载文件名,即方法的名称。

解决

把上面的代码放在流前面就行了。

response.setheader无效的原因之一

最近构建架构时,使用了HandlerInterceptorAdapter,

response.setheader ('token ',token)用在afterCompletion或postHandle中。

最初的意图是在方法执行后将新的jwt令牌返回给调用者。

但是set的值并不能在实际的回报中得到。

原因是

响应头设置,在响应内容加载到缓冲区之前,按照响应状态行、每个响应头、响应体的顺序输出http协议,后面写的头不会生效。因此,在preHandle中写入标题可以生效。

输出缓冲区

1.Servlet程序输出的HTTP消息的响应文本首先被写入Servlet引擎提供的一个输出缓冲区,缓冲区中的内容直到输出缓冲区被填满或者Servlet程序已经写完所有的响应内容才会被Servlet引擎发送到客户端。

2.使用输出缓冲区后,Servlet引擎可以严格按照HTTP消息的位置顺序调整响应状态行、每个响应头和响应体,然后输出到客户端。

3.如果在将响应提交给客户机时,所有响应内容都已经加载到输出缓冲区中,Servlet引擎将计算响应正文的大小,并自动设置Content-Length头字段。

4.如果将响应提交给客户机时,输出缓冲区中加载的内容只是全部响应内容的一部分,Servlet引擎将使用HTTP 1.1的分块编码(通过设置Transfer-Encoding头字段指定)来传输响应内容。

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: