最近在修改Java项目,应用服务器是Tomcat,总结一下Tomcat表单提交乱码问题。
表单提交时分GET与POST提交,tomcat对POST和GET的处理方法不一样,所以需要不同的设置。
1.GET方式:
例:使用Ajax的Get进行提交数据时,经过跟踪发现,HttpHeader中的参数就是乱码,这属于表单提交时出现的GET乱码问题。
解决该问题很简单,只需要在Tomcat\conf\server.xml中加一句话(URIEncoding="UTF-8")
<Connector
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
而后,重启Tomcat即可
2.POST方式:
例:对某些数据进行POST时,到Servlet中发现是乱码。这个的解决方法也比较简单
1.写一个Servlet的基类,每个Servlet都从该类继承,在该类的doPost中写一下
req.setCharacterEncoding("UTF-8");
res.setCharacterEncoding("UTF-8");
2.创建一个Filter,在其内创建也行,在此就不再详述