springmvc中文乱码问题

在ie浏览器,输入uri:http://localhost:8080/hello2.do?name=梦 出现错误-------

信息: Error parsing HTTP request header

>  Note: further occurrences of HTTP header parsing errors will be
> logged at DEBUG level. 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.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.java:240)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1049)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2555)
> 	at
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2544)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> 	at java.lang.Thread.run(Thread.java:745)

于是找度娘来帮忙,根据网上各种解决办法:

  • 有说在server.xml中增加maxHttpHeaderSize字段的:

<Connector URIEncoding="UTF-8"
port=“8080”
protocol=“org.apache.coyote.http11.Http11NioProtocol”
useBodyEncodingForURI="true"
enableLookups=“false”
connectionTimeout=“20000”
redirectPort=“8443” maxHttpHeaderSize=“你想要的大小”/>

如果调整了maxHttpHeaderSize还是解决不了,这时候需要设置前端页面的数据格式,需要将method 的属性设置为POST

此处对于添加maxHttpHeaderSize字段,没反应,但是如果有 **useBodyEncodingForURI=“true”**或者 **URIEncoding=“UTF-8”**虽然在IE浏览器中对于请求中有中文信息,请求方法是get方法的,还是会出现以上错误,但是在chrome浏览器却能正常运行,先告一段落吧。可能IE有很多不支持吧------

在这里插入图片描述

发现不错的相关博文:Java程序员请注意:Tomcat Get请求的巨坑

发布了9 篇原创文章 · 获赞 6 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览