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请求的巨坑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值