在catalina.properties添加
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}[]
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
在server.xml中添加
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
relaxedPathChars=‘\":|{}[]‘
relaxedQueryChars=‘\":|{}[]‘ />
问题原因:
这个问题纠结了一下午的时间,度娘搜的内容真是千篇一律,当我在stackoverflow中寻找答案时,看到一个评论
真是一语惊醒梦中人

翻译过来就是url中不能存在[ ]这个字符,在配合上面的修改,让Tomcat可以识别出[ ]这个就可以解决了!
补充一句我的Tomcat版本是8.5.47!
参考资料:https://blog.csdn.net/lebron3v/article/details/92593478
The valid characters are defined in RFC 7230 and RFC 3986 解决方案
原文:https://www.cnblogs.com/foreversword/p/13235092.html