对返回页面的response里面含有null的转换成""

支付宝退款接口返回null 最后做了一个网站,用了微信支付和支付宝支付,支付的时候感觉还挺顺利,没什么问题,但是退款的时候就遇到了一个问题 按照文档调用这个方法的时候,接口返回的是null 然后调用了pageExecute方法 这次可以返回数据,不过是个form表单,要放到html页面上面,而且还要跳转到支付宝的页面,所以这不是我们想到的数据。 我们想要的是文档给的数据啊。 这才是我们想要的啊。 于是,我开始排查这个方法是哪个地方出了问题,然后发现了这里 就是方法一开始new的AopClient对象,我. 阅读详情

由于项目中经常会出现"null"这样的字符串,每次去判断感觉特别麻烦,特此查阅资料做了一个过滤器用于特殊处理,特此记录一波

第一步:需要使用的对象



public class ResponseWrapper extends HttpServletResponseWrapper {

	private ByteArrayOutputStream buffer;

	private ServletOutputStream out;

	public ResponseWrapper(HttpServletResponse response) {
		super(response);
		buffer = new ByteArrayOutputStream();
		out = new WrapperOutputStream(buffer);
	}

	@Override
	public ServletOutputStream getOutputStream() throws IOException {
		return out;
	}

	@Override
	public void flushBuffer() throws IOException {
		if (out != null) {
			out.flush();
		}
	}

	public byte[] getContent() throws IOException {
		flushBuffer();
		return buffer.toByteArray();
	}

	class WrapperOutputStream extends ServletOutputStream {
		private ByteArrayOutputStream bos;

		public WrapperOutputStream(ByteArrayOutputStream bos) {
			this.bos = bos;
		}

		@Override
		public void write(int b) throws IOException {
			bos.write(b);
		}

		@Override
		public boolean isReady() {
			return false;
		}

		@Override
		public void setWriteListener(WriteListener arg0) {

		}
	}

}

第二步:特殊处理



import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/** 
 * 对返回页面的response里面含有null的转换成""
 * 
 * @author 创建作者 : LY
 * @date   创建时间 :2018年11月29日 下午4:05:39
 */
public class ResponseFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
		HttpServletRequest servletRequest = (HttpServletRequest) request;
		String path = servletRequest.getServletPath();
		String method = servletRequest.getMethod();
//		System.out.println("path:"+path+"-----method:"+method);
		
		//过滤不需要处理的接口 含"."以及绝大部分"GET" 请求都是静态资源
		//加上"GET" 是因为   项目中的导出数据都是GET请求,最开始未处理 导致导出数据乱码 找了许久才发现这里被自己埋了一个坑
		if (path.contains(".") || path.contains("judgeSession") || method.equals("GET") ) {// 在过滤url之外
			chain.doFilter(request, response);
		} else {
			ResponseWrapper wrapperResponse = new ResponseWrapper((HttpServletResponse) response);// 转换成代理类
			chain.doFilter(request, wrapperResponse);
			byte[] content = wrapperResponse.getContent();// 获取返回值
			// 判断是否有值
			if (content.length > 0) {
				String str = new String(content, "UTF-8").replaceAll(":null,", ":\"\",");
				// 把返回值输出到客户端
				ServletOutputStream out = response.getOutputStream();
				out.write(str.getBytes());
				out.flush();
			}
		}
	}

	@Override
	public void destroy() {
	}
}

第三步:web.xml中添加以下代码


	<filter>
		<filter-name>responseFilter</filter-name>
		<filter-class>com.cht.oneoperation.aop.ResponseFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>responseFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

里面许多东西其实自己并不是太懂,但是慢慢来,自勉❤
Chrome 72 73版本 provisional headers are shown及(failed) net:ERR_INVALID_HTTP_RESPONSE问题 Chrome 72 73版本 provisional headers are shown及(failed) net:ERR_INVALID_HTTP_RESPONSE问题 Tag #boa #post #request #response #ajax #provisional headers are shown #net:ERR_INVALID_HTTP_RESPONSE #chrome 问题描述... 阅读详情

相关推荐

当AI学会自我验证:Chain-of-Verification如何杜绝错误决策?

2025年,大模型"幻觉"问题已成为企业落地AI的最大障碍之一——金融风控中1.2%的误判率可能导致千万级损失,医疗诊断中3%的错误可能危及生命,法律文书中5%的事实偏差可能引发合规风险。MetaAI与Google联合提出的**Chain-of-Verification(CoVe,验证链)**技术,让AI具备"自我审视"能力,通过结构化验证流程将幻觉率降低68%+,在复杂决策场景准确率提升至95%+。本文系统拆解CoVe的技术原理、实施路径与行业实战,为企业提供AI决策可靠性保障的完整方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1080

Java对象为空时,不显示该对象属性,或者将null转换为""

第一种方法: @JsonInclude(JsonInclude.Include.NON_NULL) 将这个注解加在实体类对应的对象名上面,或者类名上面。 Include.ALWAYS 属性都序列化 Include.NON_DEFAULT 属性为默认值不序列化 Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化 Include.NON_NULL 属性...

小码蚁 1万+

数字化转型是什么?核心又是什么呢?

01到底什么是数字化转型? 这时候你或许要问笔者了,既然你说使用新兴技术不是数字化转型,那使用新的商业模式总该是数字化转型了吧?你比如阿里巴巴,作为我们中国人最熟悉的开展电子商务的公司,它可以说是新的商业模式最大的开创者了:阿里巴巴是世界上最大的零售商,却没有任何一家实体店和任何库存;再比如优步(Uber),我们非常熟悉的一个线上打车平台,它可以算是世界上最大的出租车公司了,但是它不拥有一辆出租车。还有近些年来,我们经常使用的的旅游房屋租赁社区爱彼迎(Airbnb),它可以为消费者提供多样的住宿信息..

weixin_58342023的博客 4043

基于Spring Boot应用ServletRequestWrapper和ServletResponseWrapper

记录:277 场景:在过滤器Filter的doFilter中,拦截一个http请求。对请求对象ServletRequest,按照业务需求进行处理,比如参数验证、SQL注入拦截、日志审计等。对应答对象ServletResponse,按照业务需求进行处理,比如统一返回数据格式,加密返回数据,压缩返回数据等。...

zhangbeizhen18的博客 2241

AMD MI50 Linux ROCm 6.4 手动编译与大模型推理实战

GPU加速计算是现代AI推理的核心基础,其性能依赖于硬件架构、驱动栈与运行时环境的深度协同。ROCm作为AMD开源GPU计算平台,采用‘自下而上’的Linux生态集成路径,强调对上游内核、编译器与固件的强耦合。MI50基于Vega 20(gfx900)架构,虽具备32GB HBM2高带宽显存与14.7 TFLOPS FP16算力,但因ROCm官方支持策略转向CDNA架构,自6.5版本起被移出支持列表,仅ROCm 6.4仍提供实验性兼容——这使其成为Linux下部署私有大模型的关键‘最后一班船’。本文围绕MI

weixin_32770423的博客 368

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1391

记录一次:UT010034: Stream not in async mode

java.lang.IllegalStateException: UT010034: Stream not in async mode

hq091117的博客 1227

数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分

控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。

2401_87715305的博客 1279

HttpClient 卡死 response 为null

经常遇到HttpClient 发送请求后莫名卡死, 然后经历很长一段时间后,返回response 为null。这里设置了retry, 另外connect time 也设置的挺长的。但是还是出现了这个问题。开始以为是Server的问题,Server不稳定导致了HttpClient无法连接。后来发现其实不是这个问题。这个问题的其实是必现的,如果将链接请求数调小的话。但是发送的请求都在一个线程中,不会是

帐前卒 专栏 8650

单线激光雷达的工作原理

单线激光雷达通过单一激光束的水平扫描和时间 / 相位测量,实现二维环境的距离感知,是低成本二维导航的核心传感器。尽管其无法直接提供三维信息,但其可靠性和经济性使其在消费级和工业级场景中广泛应用。随着技术发展,部分单线雷达通过振动镜或 MEMS 微振镜实现微小角度偏转,可近似模拟多线扫描效果,进一步拓展了应用边界。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 1859

基于 STM32 的手持式安检金属探测器设计与实现

【代码】基于 STM32 的手持式安检金属探测器设计与实现。

weixin_42300449的博客 899

hutool 发送http请求返回中文乱码问题

HttpResponse response = HttpRequest.post(url).body({json对象}).execute();

g470641382的博客 641

【WRFDA实操第一期】服务器中安装 WRFPLUS 和 WRFDA

【WRFDA实操第一期】安装 WRFPLUS 和 WRFDA

WW、forever的博客 2037

@ResponseBody字段为null不返回_@ResponseBody字段为null返回

@ResponseBody字段为null不返回_@ResponseBody字段为null返回 @ResponseBody字段为null不返回 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @ResponseBody字段为null返回 @JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)

weixin_46649054的博客 926

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

note_31:response为null时怎么进入onNext

文章目录response为null时怎么进入onNext1. 如果不需要输出response响应头2. 如果需要输出response响应头3. 如果只是想模拟http请求查看报文,以及为什么会跨域 response为null时怎么进入onNext 参考: 当Retrofit2+RxJava2遇到为null的返回结果 解决 Retrofit response.body() on a null o...

Blog 749

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

修改response,报错Cannot call getWriter(), getOutputStream() already called

往response里面改数据,然后系统报这个错 此时直接return null即可解决 但是,要想返回相应的页面呢? 可以直接在response里设置返回的页面 转载于:https://www.cnblogs.com/ydymz/p/9531234.html...

weixin_30235225的博客 6205

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java json 排除null字段_忽略来自Rest API Response Java的Null值字段

在我的项目中,我将Rest Response发送到 Advance Rest Client 它只显示具有一些值的字段和忽略(不显示)具有NULL值或空值的字段 .代码的一部分:Gson gson=new Gson();// firstResponse is Object which contains the valuesString jsonString = gson.toJson(firstRe...

weixin_28875613的博客 569

Meter中,对response返回JSON格式的数据进行处理

JMeter中,对response返回JSON格式的数据进行处理,格式如下: { "code":2000, "message":"success", "body": [ {"Code":"0001","Desc":"值1","sortNo":1}, {"Code":"0002","Desc":"值2","sort...

weixin_30362083的博客 465

《转载》@ResponseBody 不返回NULL的方法:@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

@ResponseBody 不返回NULL的正确方法(亲测有效) 我在网络上找到了三种解决方法,接下来将一一说明。 1.(唯一有效方法) 在实体类的顶部添加注解: @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) 1 该注解需要导入如下包: import org.codehaus.jackson.map.annotate.JsonSerialize; 1 详细代码如下: package com.***.model; import j.

小崔的专栏 1227

下载文件时controller方法只能返回null或者void

下载前端: <a th:href="@{'/xx/download/'+${url}}" th:text = "${url}" ></a> https://bbs.csdn.net/topics/391863898 controller添加返回值json后报错。 结论:下载文件时controller方法只能返回null或者void。 原因:因为response...

xinyuebaihe的博客 1204

一个接口返回的preview和response的同一个字段的值不一样

🌆。

扎哇太枣糕的笔记博客 820

通用Response前端返回对象

import org.codehaus.jackson.annotate.JsonIgnore;import org.codehaus.jackson.map.annotate.JsonSerialize;import java.io.Serializable;/** * Created by blus */@JsonSerialize(include =  JsonSerialize.Inclu...

null_name_xiaoqiang的博客 4104

struts2的action如果返回null会怎样

action return nullresponse里直接写要返回的东西, 返回null,就是说视图不跳转到任何地方,当然就出现空白页面了。如果想出现页面就需要在struts.xml文件里面配置result,让它知道你要到哪里去。或者之间 response.sendRedirtI("/你像去的页面.jsp"); 转载于:https://www.cnblogs.com/YuyuanNo1/p/97...

weixin_34294649的博客 548

getOutputStream() has already been called for this response错误解决

getOutputStream() has already been called for this response错误解决

sxdfx的博客 4716

springboot对接口请求返回数值为null时的处理,同意改成 空字符串 ““

使用阿里巴巴 fastjson 对null的处理1.加入依赖 2.对 null 的处理和 Jackson 有些不同,需要继承 WebMvcConfigurationSupport 类,然后覆盖 configureMessageConverters 方法。在方法中,我们可以选择要实现 null 转换的场景,配置好即可:...

hexu_blog的博客 1024

springboot2.0中@ResponseBody返回null值转空字符串的问题

最近正在做一个后台管理系统的项目,前端是基于Metronic的Bootstrap开发框架,管理后台大部分是将服务端查询的数据显示在表格中,由于某些字段可能为空,显示在表格中为null,不太优雅,所以想显示成空字符串或者“-”,服务端是spring boot2.0,过滤null值为空字符串一般是在序列化的时候设置值。 controller层使用@ResponseBody...

风雨诗轩的博客 3253
上一篇: 数据库计算出某列数据所占总和百分比
下一篇: Eclipse正常启动Tomcat无法访问项目
半盏清风
博客等级 码龄9年 7粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值