URIEncoding 用来设定通过 URI 传递的内容使用的编码,tomcat将使用这里指定的编码对客户端传送的内容进行编码。也就是说,我们通过 get 方法提交的参数实际上都是通过 uri 提交的,都由这个参数管理,如果没有设定这个参数,则 tomcat 将使用默认的 iso8859-1 对客户端的内容进行编码。
在老版本的tomcat中,get和post方式对参数的编码是一样的,只要在过滤器中通过 request.setCharacterEncoding设定就可以解决问题,但是在高版本中,get和post的处理是分开进行的,对get的处理需通过修改tomcat/conf/server.xml中如下位置的几行代码即可解决:
对post的依然通过request.setCharacterEncoding便可进行处理。
解释:useBodyEncodingForURI 使用与 Body 一样的编码来处理 URI