[坑]拦截器返回response.getWrite().println方法返回数据不全

2023-11-17

在SpringBoot项目中,前端ajax请求后端,拦截器进行登录拦截判断,如果超时返回false,则给前端返回一段json字符串。

private static void returnJson(HttpServletResponse response, String json) throws Exception{
	PrintWriter writer = null;
	response.setCharacterEncoding("UTF-8");
	response.setContentType("application/json; charset=utf-8");
	// a
	try {
		writer = response.getWriter();
		writer.println(json);
	} catch (IOException e) {
		Log.error("returnJson方法错误:" + e);
	} finally {
		if(writer != null){
			writer.close();
		}
	}
}

在本地运行可以正常返回,但在以liberty应用服务器的镜像中运行返回的字符串缺少:

//期望返回
{
	"return_code":"1",
	"return_msg":"登录超时",	//简化了文字,文字总长35字符长度
	"isLogin":"1"
}

//实际返回
{
	"return_code":"1",
	"return_msg":"登录

从而导致前端报错“未结束的字符”。

解决方案:
在注释a的位置增加

response.setContentLength(json.getBytes().length);

至此问题解决。

但是为什么长度限制还是不太清楚,进入println源码没有找到对应截取操作。还希望各位大佬给小弟解惑!感谢!

参考:https://blog.csdn.net/nianbingsihan/article/details/89319504
虽然用response.setContentLength(-1);并没有成功,什么都没有返回,但是找到了问题所在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[坑]拦截器返回response.getWrite().println方法返回数据不全 的相关文章

随机推荐

  • 基于FPGA的频率计设计

    文章目录 写在前面 1 什么是频率计 2 测量方法与基本原理 3 待测信号如何输入FPGA 一 实验程序 1 RTL图 2 Verilog 参考设计 3 指派引脚 二 调试验证 输入不同频率的方波 写在前面 1 什么是频率计 频率计是一种专
  • 正则表达式用ajax怎么写,使用AJAX(包含正则表达式)验证用户登录的步骤

    我们来分一下步骤吧 1 HTML代码 页面先写出来 2 正则表达式验证输入的用户名密码是否正确 失去焦点验证 3 Ajax异步提交 4 servlet这是后台处理代码获取数据并对比响应 然后跳转成功页面 效果图 结构 代码如下 table
  • TensorFlow 的基本概念和使用场景

    TensorFlow 是一个热门的机器学习框架 由 Google 开发 用于构建和训练神经网络和其他机器学习模型 下面是 TensorFlow 的基本概念和使用场景 基本概念 1 张量 Tensor 是 TensorFlow 中的基本数据结
  • 防止运营商劫持apk

    title 防止运营商劫持apk tags https upyun apk 运营商 劫持 categories 工作日志 date 2017 05 25 18 18 56 目前f6部分系统使用了upyun的服务 包含apk的下载和静态资源等
  • Exception常见异常类型和处理机制

    Exception 意外异常 异常层次结构的父类 Throwable 是异常Exception与Error的父类 直接继承自Object Error通常指系统发生的严重性的错误 不能通过程序代码解决的问题 Exception异常可以通过修改
  • 在ipad任意界面都可以写字_不再泡面!大学生如何用iPad高效学习

    如果你还是一个学生 相信平时上课记笔记一定是最头疼的问题 平时的笔记期末就不见了等等 用电子的方式记录就可以完美解决这个问题 而目前比较推崇 流行的方式就是使用iPad Apple Pencil的组合 书写的感觉也接近纸质 但同样的 你也需
  • 多层嵌套的 javabean转化为xml时 更改嵌套的属性名称时 报错重复

    我们先来看下报错 如果需要给多层嵌套javabean 转化为xml时 转化的标签名字不符 我们需要该怎么做呢 不是多层嵌套的我们可以直接使用 XmlElement name 来进行别名 如果多层的话 我们则需要给在每个路过的类上都需要加上
  • 公众号H5开发如何在本地调试

    1 设置本地hosts的地址映射 如blog test com映射127 0 0 1 方法 修改hosts的地址映射 使域名解析到指定IP 2 配置公众号网页授权获取用户基本信息 3 修改vue配置 vue cli3创建的项目 在项目根目录
  • 【PLC 课程设计】花式喷泉

    花式喷泉的控制 要求 按下启动按钮 喷泉装置开始工作 按下停止按钮 喷泉装置停止工作 喷泉的工作方式由花式选择开关和单步 连续开关决定 当单步 连续开关在单步位置时 喷泉只能按照花样选择开关设定的方式运行一个循环 花样选择开关用于选择喷泉的
  • 从零实现DevOps(四):Jenkins+GitLab自动化部署SpringBoot项目(Jenkins本地环境+Jar包模式)

    从前三篇文章中 我们已经实现了gitlab jenkins项目的安装与基础配置 并且给Centos7操作系统搭配了jdk maven等环境变量 从这边文章起 从零实现DevOps 系列 将正式开始利用Jenkins Gitlab的完美结合
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • elasticsearch query 要点

    查看分析效果 godproduct analyze analyzer ik smart text 雅诗兰黛眼霜 简单filter查询 POST myindex mytype search query bool filter term use
  • 常用Web安全扫描工具合集

    初入门时 喜欢将目标站点直接丢扫描器 慢慢等扫描结果 极度依赖Web扫描器 而有一些漏洞高手 善于运用运用各种工具但并不依赖工具 经常可以找到扫描工具发现不了的漏洞 一款好用的Web扫描器对于白帽子来说 就像剑客手中的剑一样重要 那么 如何
  • python os.walk不递归_python-os.walk目录递归

    递归删除文件或目录 递归 os walk 删除目录 shutil rmtree 1 coding UTF 8 2 importos path sys shutil3 4 path H test 5 6 7 for root dirs fil
  • 敏捷之旅大连站2012第一次筹备会议记录

    昨天召集了敏捷之旅大连站的几位组织者 一起开了一个筹备的讨论会 简单记录如下 1 地点的讨论 目前有几个地点备选 东软会议中心 腾飞软件园的会议厅 中荷人寿会议室以及酒店 综合各种因素 包括地点的交通 午餐的方便程度 场地的大小 音响和投影
  • 2.C++设计模式 - 观察者模式

    class Observer public 构造 Observer 析构 virtual Observer 更新 virtual void updata class Server private 观察者链表 list
  • 微信多客服如何设置快捷回复(高级玩法总结)

    在微信生态 使用公众号小程序等 同时每天会产生很多重复的咨询 如何在微信上实现更高效的快捷回复 把常用语 回答文档等便捷化 标准化对答 避免以往的复制粘贴工作方式 是我们不得不面对的一个问题 应用内回复 全应用回复 个人回复 公共回复 快捷
  • Hadoop - wordCount 实例

    hadoop 创建文件夹存放需要被统计的文件 hadoop fs mkdir usr 创建单子文件并写入内容 可在网上找几篇英文文章写入 vim word txt 上传到 hdfs hadoop fs put word txt usr 利用
  • C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)”

    引言 在 C 高阶编程 中文第10版 的2 2 4节中 有这样一段描述 看到这段话 我简单的理解为 只要在程序开始用using语句声明名称空间 就可以在当前名称空间使用声明的这个名称空间中的类和方法 但实践证明我的理解是有些错误的T0T 问
  • [坑]拦截器返回response.getWrite().println方法返回数据不全

    在SpringBoot项目中 前端ajax请求后端 拦截器进行登录拦截判断 如果超时返回false 则给前端返回一段json字符串 private static void returnJson HttpServletResponse res