get请求报错400状态码

get请求报错400状态码  请求参数带  {} 

在tomcat 7版本中没有问题,可以正常返回请求

在tomcat8.5.35 版本中 请求报错400 

 

原因分析:

Tomcat的新版本中增加了一个新特新,就是严格按照RFC 3986规范进行访问解析,
  RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4种特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。

而我们的系统在通过地址传参时,在url中传了一段参数包含有有不在RFC3986中的保留字段中,所以会报这个错。
 

解决方案:

 

修改tomcat目录底下的/conf/catalina.properties配置文件

想知道你所用的tomcat版本适不适用这个方法的话,可以用下面这个方法来鉴别:

查看catalina.properties文件中是否存在着下面这句话,没有就不用尝试了,说明这个版本不支持。

#tomcat.util.http.parser.HttpParser.requestTargetAllow=|
如果存在上面这句话就可以尝试去除#来开启该配置,然后在后面添加URL中可能会出现的非保留字符(就是你觉得你的URL中可能存在哪种特殊字符,填进去就完事了)

tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}-
注:上面的{}-就是你填入想要非保留字符。

你可能感兴趣的:(tomcat,java)