tomcat中出现RFC7230和RFC3986问题解析

问题截图

tomcat中出现RFC7230和RFC3986问题解析_第1张图片

问题分析

出现上述问题,是因为各版本tomcat中对特殊字符和请求路径中携带中文参数而产生的错误提示。

解决办法

1、调整tomcat版本

tomcat 7.0.76之前的版本不会出现类似问题

2、tomcat9之前,修改tomcat目录底下的/conf/catalina.properties

#tomcat.util.http.parser.HttpParser.requestTargetAllow=|

在文件中找到该行配置,然后取消注释,最后的值配置为你需要配置的非保留字符。

3、tomcat9之后,修改tomcat目录底下的/conf/server.xml

<Connector port="8090" relaxedQueryChars="[]|{}-^`"<>"relaxedPathChars="[]|{}-^`"<>"

relaxedQueryChars=
relaxedPathChars=
非保留字符填写在这个后面

4、非保留字符如果配置后依旧解决不了问题,或许是路径携带中文的问题

将路径编码,可分为前端和后端两种方式
java代码:
在这里插入图片描述
前端代码:
tomcat中出现RFC7230和RFC3986问题解析_第2张图片

5、其他

如果上述问题均不能解决,那么就将请求方式get改为post请求,将参数封装在requestBody中

你可能感兴趣的:(java基础,tomcat,java,开发语言)