get请求乱码
当get请求出现乱码,只需要到tomcat的conf目录下修改server.xml文件,在配置端口号的地方,设置端口号后加上,空格
URIEnconding="UTF-8"
post请求乱码
在web.xml文件中注册CharacterEncodingFilter过滤器【这时Spring自带的】,通过CharacterEncodingFilter过滤器初始化参数设置请求和响应参数编码格式
首先能看见CharacterEncodingFilter中有三个参数,其中encoding代表编码,另两个分别代表是否强制请求编码格式为xxx,是否强制响应编码格式为xxx。
在CharacterEncodingFilter源码【一部分】中:
private String encoding;
private boolean forceRequestEncoding;
private boolean forceResponseEncoding;
public CharacterEncodingFilter() {
this.forceRequestEncoding = false;
this.forceResponseEncoding = false;
}
然后在具体处理过滤请求的方法【doFilterInternal】中,可以看见在设置了encoding后就会将请求编码格式设置为你设置的请求编码格式。
在下面的判断中可以发现,当设置了请求参数后,第一个判断的判断条件中,它是或判断,第一个条件默认是