- SpringBoot + Logback 实现日志脱敏【手把手案例】
甘蓝聊Java
【更新中...】项目中的那些事springbootlogbackLogback日志脱敏Java日志脱敏
文章目录背景分析现有Logback配置了解PatternLayout中的Converter解决第1步:创建自定义Converter第2步:自定义logback配置文件第3步:调整yaml配置第4步:启动服务并验证参考背景SpringBoot+MyBatis+MySQL+Logback框架,使用MySQL的AES_DECRYPT()和AES_ENCRYPT()函数,由于日志设置为debug级别,导致
- Logback.xml配置详解与实战指南
Logback.xml是Logback日志框架的核心配置文件,用于定义日志的输出格式、级别、存储路径等。以下是关键配置要点和示例:1.基础结构Logback.xml以为根节点,包含以下核心组件:变量定义:通过设置全局变量(如日志存储路径)。Appender:定义日志输出目标(控制台、文件等)。Logger/RootLogger:设置日志级别和关联的Appender。示例基础结构:%d{HH:mm:
- logback 入门教程系列-03-logback config 配置
老马啸西风
logback
配置将日志请求插入应用程序代码需要相当多的计划和努力。观察表明,大约4%的代码专门用于记录。因此,即使是适度大小的应用程序也会在其代码中嵌入数千个日志记录语句。鉴于它们的数量,我们需要工具来管理这些日志语句。可以通过编程方式或使用以XML或Groovy格式表示的配置脚本来配置Logback。顺便说一句,现有的log4j用户可以使用我们的PropertiesTranslatorWeb应用程序将他们的
- 小架构step系列08:logback.xml的配置
秋千码途
logbackxmljava
1概述logback.xml配置文件的详细配置,很多地方都说得比较细,本文主要从几个重点来看一下原理,了解原理能够帮助确定哪些应该配置,以及如何配置。logback.xml是为打印日志服务的,打印的内容一般打印到控制台(Console)和文件(file)里,在生产环境中主要是打印到文件里,然后用扫描工具汇总到某个地方方便查询(如ELK)。打印的内容要符合一定的格式,提供足够的信息,方便进行日志查询
- Java:logback-classic与slf4j版本对应关系
1、结论logback-classic-1.2.x及以下版本,则适配的slf4j1.0.x-1.7.xlogback-classic-1.3.x及以上版本,则适配的slf4j1.8.x及以上2、原因分析(1)logback-classic-1.2.x及以下版本通过org.slf4j.impl.StaticLoggerBinder初始化logbackorg.slf4j.impl.StaticLogg
- SLF4J深度解析:Java日志世界的“唯一标准”
沉浸式炼丹
java开发语言log4jSLF4J
SLF4J——Java生态系统中极其重要的组件,它不仅仅是一个日志工具,更体现了一种面向接口编程和“解耦合”的优雅设计思想。理解了SLF4J,你不仅能写出更专业的日志代码,更能加深对软件设计原则的理解。引子:日志框架的“战国时代”在SLF4J出现之前,Java的日志领域一片混乱,群雄并起,如同一个“战国时代”:JUL(java.util.logging):JDK自带的“亲儿子”,但功能简陋,配置复
- SpringCloud Gateway 全局异常处理
小脑斧学技术
SpringCloudjavagateway微服务
在全局过滤器中可以处理网络异常请求,但是当设置Gateway请求超时时间,超时后的异常全局过滤器中处理不了。定义CustomWebExceptionHandler类importcom.alibaba.csp.sentinel.slots.block.BlockException;importcom.tigerkin.util.ApiResult;importorg.slf4j.Logger;imp
- Flink将数据流写入Kafka,Redis,ES,Mysql
浅唱战无双
flinkmysqlesrediskafka
Flink写入不同的数据源写入到Mysql写入到ES向Redis写入向kafka写入导入公共依赖org.slf4jslf4j-simple1.7.25compileorg.apache.flinkflink-java1.10.1org.apache.flinkflink-streaming-java_2.121.10.1写入到Mysql导入依赖mysqlmysql-connector-java5.
- RabbitMQ简单消息发送
RabbitMQ简单消息发送简单代码实现RabbitMQ消息发送需要的依赖org.springframework.bootspring-boot-starter-amqpx.x.x消息发送示例importcom.rabbitmq.client.Channel;importlombok.extern.slf4j.Slf4j;importorg.springframework.amqp.rabbit.
- MyBatis实战指南(八)MyBatis日志
珹洺
#MyBatis实战指南mybatistomcatjava
MyBatis实战指南(八)MyBatis日志前言一、为什么需要日志?二、日志框架怎么选?1.手把手教你集成(以最常用的SLF4J+Logback为例)步骤1:添加依赖(Maven项目)步骤2:在MyBatis配置文件中开启日志步骤3:配置Logback日志文件三、配置方式详解1.MyBatis自身的日志配置2.日志级别控制3.SpringBoot中怎么配?四、源码解析:搞懂MyBatis日志底层
- 将html静态页面转化为图片
packagecom.demo.common.utils;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.io.FileUtils;importorg.apache.commons.lang3.StringUtils;importorg.w3c.dom.Document;importorg.xhtmlrenderer.swing.J
- 理解对话上下文
青春1314
A002AIAI编程
1、pom依赖UTF-811110.35.0dev.langchain4jlangchain4j${langchain4j.version}dev.langchain4jlangchain4j-open-ai${langchain4j.version}org.tinylogtinylog-impl2.6.2org.tinylogslf4j-tinylog2.6.2dev.langchain4jla
- 阿⾥百炼云平台调用deepseek模型
青春1314
A002AIAI编程
1、pom文件依赖UTF-811110.35.0dev.langchain4jlangchain4j${langchain4j.version}dev.langchain4jlangchain4j-open-ai${langchain4j.version}org.tinylogtinylog-impl2.6.2org.tinylogslf4j-tinylog2.6.22、代码importdev.l
- 第⼀个与⼤模型交互的应⽤
青春1314
A002AIjavaAI编程
1、pom.xml依赖UTF-811110.35.0dev.langchain4jlangchain4j${langchain4j.version}dev.langchain4jlangchain4j-open-ai${langchain4j.version}org.tinylogtinylog-impl2.6.2org.tinylogslf4j-tinylog2.6.22、测试代码importd
- 在spring boot中使用Logback
棠棠的cafe
java日志javalogback
在SpringBoot中使用Logback作为日志框架是开发中的常见需求,因其高性能和灵活配置而广受青睐。以下是详细实践指南,结合了配置方法、代码示例及最佳实践:一、依赖配置SpringBoot默认集成了Logback,无需手动添加依赖:org.springframework.bootspring-boot-starter若需切换至Log4j2,需排除默认日志依赖并引入Log4j2:更多配置细节可
- Logstash-Logback-Encoder 教程
孟元毓Pandora
Logstash-Logback-Encoder教程logstash-logback-encoderLogbackJSONencoderandappenders项目地址:https://gitcode.com/gh_mirrors/lo/logstash-logback-encoder本教程将引导您了解logstash-logback-encoder项目,这是一个用于生成JSON格式日志的Logb
- Logback 在java中的使用
棠棠的cafe
日志java后端Logback
Logback是Java应用中广泛使用的日志框架,以下是其核心使用方法及最佳实践:1.引入依赖在Maven或Gradle项目中添加Logback及SLF4J依赖:ch.qos.logbacklogback-classic1.4.10org.slf4jslf4j-api1.7.36//Gradleimplementation'ch.qos.logback:logback-classic:1.4.10
- 使用docx4j 实现word转pdf(linux乱码处理)
贤和兄
wordpdflinux
由于系统之前使用了是itext进行转换的,现在已经不是开源的工具了,需要收费,然后进行改造,具体处理如下。org.docx4jdocx4j6.1.2org.slf4jslf4j-log4j12xalanxalanorg.docx4jdocx4j-export-fo6.0.0org.slf4jslf4j-log4j12xalanxalan以上排查一下日志,因为和自己的有冲突,所以,自己项目看情况而定
- Java调用python脚本方法
看花?.〆
javapython开发语言
java调用python脚本方法今天项目中需要用到一个python脚本,将python脚本写完之后,忽然接到消息需要集成的java项目中,然后写了一个在java项目里面调用python脚本的代码,话不多说,直接上代码importlombok.extern.slf4j.Slf4j;importjava.io.BufferedReader;importjava.io.IOException;impor
- Spring Boot 日志配置混乱?Logback 使用避坑指南
you的日常
Javaspringbootlogback后端javaspring
日志系统是应用程序不可或缺的一部分,它记录了程序的运行状态、错误信息和关键业务数据,为问题排查、性能监控和业务分析提供了重要依据。SpringBoot默认集成了强大的日志框架——Logback,并通过spring-boot-starter-logging为我们提供了开箱即用的日志配置。然而,尽管SpringBoot已经做了很多简化,但如果对Logback的配置机制、SpringBoot的日志自动配
- 【分布式】基于Dubbo实现对远程调用接口的封装
沉着的码农
Spring分布式Java分布式dubbojavaspring
基于Dubbo实现对远程调用接口的封装服务调用者调用统一包装工具RemoteCallWrapper使用举例服务提供者提供Facade注解实现统一RPC结果包装定义Facade注解定义注解的切面处理类服务调用者调用在调用服务中给被调服务添加@DubboReference(version="1.0.0")注解@Slf4j@RequiredArgsConstructor@RestController@R
- 不是所有 log 都叫日志体系:谈谈日志设计的底层逻辑
后端
日志是后端开发中常被忽视但极其关键的一环。它是系统运行状态的“黑匣子”,当系统出现异常、性能下降或用户反馈问题时,日志往往是我们排查的第一入口。本文不讨论日志框架的用法(如Logback、Log4j、Slf4j等),而是从实际开发出发,分享如何构建一套清晰、稳定、可维护的日志体系,避免“日志堆满硬盘也找不到问题”的尴尬。一、明确日志的用途不同类型的日志服务不同目的。建议从三个层面思考日志结构:业务
- Java生成指定背景图片的PDF文件并转为图片
圆仔007
javapdf
Java生成指定背景图片的PDF文件并转为图片工具类packageorg.jeecg.dts.common.util;importlombok.Data;importlombok.extern.slf4j.Slf4j;importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.pdmodel.PDPage;importorg
- RedisClient——解决缓存穿透和缓存击穿的工具类
issavior
中间件核心技术缓存redisjava
工具类/***Redis工具类**@authorissavior*/@Slf4j@ComponentpublicclassRedisClient{privatefinalStringRedisTemplatestringRedisTemplate;privatestaticfinal
- jar包后台运行常用方法和命令
༺๑Tobias๑༻
技术成长springbootjarjava开发语言
直接运行Jar包是许多springboot后台发布的常用手段,但直接采用java-jar虽然方便,但不美观,而且依赖对话框的有效运行,因此许多场景下需要采用jar包后台运行的方法发布。对于后台发布因此我们首先肯定需要将日志配置到logback.xml中,以便跟踪查阅日志文件,方便定位和检查问题,完成了日志的配置后:Windows环境:在配置的jdk的bin文件下,复制一份javaw.exe并改名为
- Java日志框架
Epi_HHH
Java框架javalogback
目录优质文章一、日志体系二、日志门面Facade三、日志实现Impl四、最佳组合优质文章带你掌握Java各种日志框架-蚂蚁小哥-博客园一文带你彻底掌握Log4j2-蚂蚁小哥-博客园一、日志体系1)总览sl4j是目前常用的日志门面,logback是目前常用的日志框架。门面(Facade):统一的日志API接口,应用程序只调用这个接口,不依赖具体实现。实现(Implementation):具体的日志框
- Could not initialize Logback logging from classpath:logback-spring.xml
Dkodak
springlogbackxml
jdk21、springboot3.2.12启动报错找不到logback.xmlLoggingsystemfailedtoinitializeusingconfigurationfrom'classpath:logback-spring.xml'java.lang.IllegalStateException:CouldnotinitializeLogbackloggingfromclasspath
- Zookeeper 3.8.4 安装部署帮助手册
顧棟
hadoopZooKeeperzookeeper分布式
Zookeeper3.8.4安装部署帮助手册Zookeeper3.4.6+升级至3.5.5以上的升级方案文章目录Zookeeper3.8.4安装部署帮助手册安装包系统准备安装步骤创建用户创建目录解压软件包配置zookeeper环境变量配置文件配置zoo.cfg配置myid文件配置logback日志启停ZooKeeper启动检查状态检查命令行执行检查停止若没有特殊标注,命令使用root执行。安装包安
- Logback-spring.xml 配置屏蔽特定路径的日志
悟能不能悟
springxmljava
在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式:方案一:基础配置(直接关闭目标路径日志)${CONSOLE_LOG_PATTERN}方案二:结合SpringProfile按环境屏蔽${CONSOLE_LOG_PATTERN}关键配置说明:精准路径屏蔽name属性:支持包路径(如com.example.util)或全限定类名(如com.ex
- java实现RabbitMQ消息发送和接收功能
简诚
java-rabbitmqjavarabbitmq
您不需要发送测试消息,我会帮您移除所有测试相关的代码。以下是修改后的版本,只保留核心功能:修改后的RabbitMQManager类(移除了测试消息发送)importcom.rabbitmq.client.*;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjava.io.IOException;importjava.nio.ch
- Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取HtmlExtractor精准抽取信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
- java编程思想 -- 多态
百合不是茶
java多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
- [自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
- storm 自定义 日志文件
商人shang
stormclusterlogback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
- Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
- 一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
- Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
- php 文件操作
aichenglong
PHP读取文件写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
- MySQL的btree索引和hash索引的区别
AILIKES
数据结构mysql算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
- JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
- JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
- TDD实践(二)
bijian1013
javaTDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
- [MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
- 【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
- python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项  
- jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
- Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
- SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
- java 线程弹球小游戏
CrazyMizzz
java游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
- hadoop jps出现process information unavailable提示解决办法
daizj
hadoopjps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
- PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
- IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
iosUILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
- 完全手动建立maven骨架
eksliang
javaeclipseWeb
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
- 配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
- Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
- 简单工厂设计模式
hm4123660
java工厂设计模式简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
- maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
- 非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
maphbasereduceHfilepath实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
- jsp web tomcat 编码问题
王新春
tomcatjsppageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi