Loading

Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

SSM项目遇到了以下错误

在使用pageHelper的时候指向了html页面的语法错误

<th:block th:if="page_Num ne pageInfo.pageNum">
<li>
<a th:href="@{/List?pn=#{page_Num}}" th:text="${page_Num}"></a>
</li>
</th:block>

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:483) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:502) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

 

原因是:

从7.0.88开始,大多数tomcat版本都会出现此问题。

解决方案:(由Apache团队建议):

Tomcat增强了其安全性,并且不再允许在查询字符串中使用原始方括号。在请求中,我们有{,} 或其他符号,因此服务器未处理该请求。

 

解决方法:

在tomcat conf路径下的server.xml文件里面的 Connector 标签下添加属性 relaxedQueryChars:

 

posted @ 2022-04-07 22:58  月球海员  阅读(56)  评论(0)    收藏  举报