在过滤器链中的学习中,我发现显示出来的网页出现乱码
如图所示:
本该显示中文的地方却显示的是“ ?”
为了解决这个问题,我查阅了资料发现是因为没有使用request.setCharacterEncoding来用指定的编码集去覆盖request对象中的默认的编码集,导致出现乱码。
于是我找到了需要显示中文的位置AllFilter,然后添加了如下代码
request.setCharacterEncoding("UTF-8");
运行后发现网页显示依旧是乱码。
原因是,这个方法必须在第一次使用request时就要调用这个方法来设置编码集,否者该方法就会无效。
由于我过滤器链中(FilterChain01->FilterChain02->AllFilter),第一个过滤器FilterChain01将请求转发给过滤器链上的下一个对象,也就是FilterChain02时,就使用过request,
因此将request.setCharacterEncoding使用在AllFiler无效。
将request.setCharacterEncoding(“UTF-8”)使用在FilterChain01,运行:
可以看到,中文显示出来了,乱码问题得到解决。
版权声明:本文为weixin_58915328原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。