使用Tomcat传url地址中包含大括号{}的特殊字符无法识别问题多种解决方法

方法一:更换Tomcat版本为能识别的版本
 

 根据rfc规范,url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还是较为常见的。在tomcat升级到8以后,对url字符的检查都变严格了,如果出现这类字符,tomcat将直接返回400状态码。

    更改至以下版本的tomcat中有效:

    - 8.5.x for 8.5.12 onwards  https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.12/bin/

    - 8.0.x for 8.0.42 onwards  https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.42/bin/

    - 7.0.x for 7.0.76 onwards  https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.76/bin/

 
方法二:对URL进行转码解决特殊字符


    使用encodeURI()、URLDecoder进行URL参数的转码与解码 

encodeURI()用于含有特殊字符的参数编码,如encodeURI(encodeURI(id))

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

 

方法三:修改Tomcat的配置文件,使其零时支持特殊符号


    修改tomcat的conf文件夹下的catelina.properties文件,拖到最后,启用该配置,我需要用到{},所以增加了{}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值