大数据全系列 教程
1869个小节阅读:466.7k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
public static final String LOG_SPLIT_AND = "&";
public static final String LOG_SPLIT_EQUAL = "=";
LoggerUtil类的handleRequestData方法实现。
xxxxxxxxxx
/**将requestData数据拆分,拆分后封装Map对象中
* @param requestData 请求的数据en=e_l&ver=1.0&pl=website&...
* @param clientInfo 封装后的Map对象 k1,v1 en,e_l;k2,v2: ver,1.0
*/
private static void handleRequestData(String requestData, Map<String, String> clientInfo) {
//判断requestData不为空,才进行后续的拆分与封装数据的处理
if(StringUtils.isNotBlank(requestData)){
String[] requestParams = requestData.split(EventLogConstants.LOG_SPLIT_AND);
//遍历数组
for(String param:requestParams){//k=v
//非空判断
if(StringUtils.isNotBlank(param)){
//获取=的下标
int index = param.indexOf(EventLogConstants.LOG_SPLIT_EQUAL);
//如果没有=,下标为-1,该参数为无效数据,则丢弃,并分析后续的参数
if(index<=0){
LOGGER.warn("无法解析参数:"+param+",请求参数为:"+requestData);
continue;
}
//定义两个变量
String key=null,value=null;
try {
key = param.substring(0,index);
//获取value值时需要进行URLDecoder解码
value = URLDecoder.decode(param.substring(index+1),"utf-8");
} catch (Exception e) {
LOGGER.warn("获取key和value时出现了异常",e);
continue;
}
//判断key和value都不为空,这添加到Map集合中
if(StringUtils.isNotBlank(key)&&StringUtils.isNotBlank(value)){
clientInfo.put(key,value);
}
}
}
}
}