过滤器解决中文乱码问题,jsp过滤器解决中文乱码案例
Java中的中文交流经常会出现乱码。我相信你们都遇到过。今天给大家讲一个——滤镜过滤的常用方式。过滤器充当过滤器。当你提交或获取信息时,它会经过过滤器,然后过滤器会把你传递的信息转换成你设置的编码格式,从而避免一些中文乱码。
过滤器过滤需要添加两部分代码,一是配置文件中关于过滤器的配置信息;另一个是过滤器中的过滤器代码。让我们一起来看看吧。
web.xml中的配置代码:
过滤器
过滤器名称CharsetEncodingFilter/过滤器名称
过滤级
com . TGB . DRP . util . filter . charsetencodingfilter
/筛选器类
初始化参数
param-name结束编码/param-name
参数值GB 18030/参数值!-设置您要使用的字符集。我用GB18030 -这里-
/init-param
/过滤器
过滤映射
过滤器名称CharsetEncodingFilter/过滤器名称
url模式*。jsp /url模式
/filter-映射
过滤器中的过滤器代码:
导入Java . io . io exception;
导入javax . servlet . filter;
导入javax . servlet . filter chain;
导入javax . servlet . filter config;
导入javax . servlet . servlet exception;
导入javax . servlet . servlet request;
导入javax . servlet . servlet response;
public void do filter(servlet request请求,ServletResponse响应,
FilterChain chain)引发IOException,ServletException {
system . out . println( CharsetEncodingFilter-begin );
//设置web.xml中配置的字符集
request . setcharacterencoding(end coding);
system . out . println( CharsetEncodingFilter-doing );
//继续执行
chain.doFilter(请求,响应);
system . out . println( CharsetEncodingFilter-end );
@覆盖
公共void init(filter config filter config)引发ServletException {
this . end coding=filter config . getinitparameter( end coding );
system . out . println( charsetencodingfilter . init()-end coding= end coding);
通过以上设置,我们可以避免一些中文乱码,没错,只能解决一些乱码,因为乱码的原因有很多,包括JSP、HTML、URL传输、Eclipse等编译器.总之,出现乱码的原因有很多。我想推荐一篇文章——JSP,乱码的终极解决方案。
PS: Filter方法只适用于post提交,而不适用于get提交。而且get submission也有一定的安全问题,建议你还是用post的方式提交数据比较好。另外,滤镜的作用并不仅限于此。还可以做一些页面访问控制等工作。今天只介绍乱码的处理问题。如果你对别人感兴趣,可以自己学习,或者等我弟弟以后写相关文章再和你交流。