log4j控制台输出中文乱码,[Servlet should have a mapping ] 非web.xml问题(与网上大多数问题情况不同)

这篇博客讲述了作者在Java项目中遇到的log4j控制台输出中文乱码和Servlet 'Servlet should have a mapping' 错误的问题。通过检查web.xml配置并添加<servlet-mapping>标签解决了Servlet映射问题,但随后出现405错误。最终,通过在log4j.properties文件中添加相关编码设置(如UTF-8)成功解决了乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了网上很多帖子,都说是idea的web.xml没配置上之类的,没解决我的问题,我的web.xml配置的很好。

Servlet should have a mapping 我的这个问题是其他的mapping都映射的好好的,只有单单这一个的映射出了问题,于是我加了<servlet-mapping>标签。

之前是这个样子:

现在在后边加了这个标签:

问题没有结束。

刚开始加上去的时候,本来启动的时候只报log4j的错误,但是并不影响启动,只是控制台输出乱码,加上他之后直接405了。

解决方法:

我之前出错是因为<url_patern>这个路面写的是/*,他就报的405,现在我写的/log4j是随便写的一个,于是乎就不报错了(上边的图是已经是解决方案了)

还没完,现在不报错了,但是还是有乱码。

于是乎我去修改了log4j.properties配置

发现里面没有配置UTF-8,我的项目里配置的

log4j.rootLogger=DEBUG,console,info,error

这4个级别,所以为了保险,我把他们都加上了

也就是

log4j.appender.console.encoding=UTF-8

log4j.appender.info.encoding=UTF-8

log4j.appender.error.encoding=UTF-8

这种。

网上说的其他的方法我这改UTF-8并不是很好用,暂时这样处理的,

以上就是我的方法,个人修改方法,不权威。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值