tomcat7项目换到tomcat8乱码以及tomcat异常

-- 异常
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.  

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986……
 

错误原因:tomcat8 自己加了一些http请求头验证导致

当在浏览器中访问时 URL中带有特殊字符,如花括号冒号时,就会出现这个错误。

例如:http://localhost:8080/index.do?{id:123}

解决方法: 添加  tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

tomcat7项目换到tomcat8乱码问题

原因:tomcat7默认编码ISO-8859-1 tomcat8默认UTF-8

解决方法:在 conf/catalina.properties  添加或者修改: tomcat7 server.xml里URIEncoding设为URIEncoding="UTF-8"无中文乱码 换为tomcat8后出现乱码则如下设置
tomcat8 server.xml里URIEncoding设为URIEncoding="ISO-8859-1"

补充乱码说明

  1. 关于编码问题 
    1.1 Tomcat7这个URI默认的编码带来很多问题,下面这个应该很常见: 

new String(value.getBytes(“ISO-8859-1”), param); 
如果server.xml配置上URIEncoding=“UTF-8”就不需要了。 
进而项目直接迁移到Tomcat8,不修改server.xml,或者再次加上URIEncoding=“UTF-8”也是不会有问题。

        1.2 Tomcat8是不是就是因为开发者服务端转码麻烦,URI默认的编码改为“UTF-8”。 
对于在Tomcat8开发项目,就简单很多,不需要上面的那段不人道的代码。但是从Tomcat7迁移上来的项目,要么,去掉上面的代码,要么server.xml添加URIEncoding=“ISO-8859-1”,浪费Tomcat8一番美意。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值