日期:2014-05-16  浏览次数:20349 次

Jsp表单提交数据乱码问题

????????????? Jsp表单提交数据出现乱码

????????这个问提真的就纠结了好多天。太复杂了。说是涉及到到jsp文件的存储格式,又有解码格式,还有浏览器的解码格式。

???? 1. 网上说了很多方法,我觉得更改server.xml文件这个方法应该相对来说是比较简单的,改了之后就一劳永逸了。所以就将

???? <Connector port="80" protocol="HTTP/1.1"

???????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"?

??????????? enableLookups="false"

?????????????? connectionTimeout="20000"

?????????????? redirectPort="8443" URIEncoding="gbk"/>?

??? ?改成

?? <Connector port="8080" maxHttpHeaderSize="8192"?

?????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"?

??????????? enableLookups="false" redirectPort="8443" acceptCount="100"?

?????????? connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="gbk">?

????? 我试过,不行。开始以为是自己那个单词写错了,后来就把网上的这段copy过来。还是不行。后来小甘说,她就是这么做的,完全行得通。我就无语了,难道还是概率事件,重启试过很多次还是不行。又说可以在上面加上useBodyEncodingForURI=”true” ,但还是不行。现在也不知道是什么原因。为什么很多人都说是可以的???

?

?

????? 2. 没办法得尝试其他方法。在servlet 类中,对提交的数据先做以下处理。

??? request.setCharacterEncoding("gbk");

??? ?? ?response.setCharacterEncoding("gbk");

??????? 这样可以正确显示中文了。但是这个方法也比较麻烦,每个servlet类里面都要写。但是奇怪的是我又用新建的jsp页面时,这个方法又行不通了。我甚至将页面提交到前面行得通的