温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中Filter过滤器解决中文乱码办法

发布时间:2020-04-07 10:19:09 来源:亿速云 阅读:119 作者:小新 栏目:编程语言

这篇文章主要为大家详细介绍了java中Filter过滤器解决中文乱码办法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

java中Filter过滤器解决中文乱码办法

java中Filter过滤器处理中文乱码的方法

注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。

解决方法:所有地方都用utf-8或gbk

//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharactorFilter implements Filter { //继承Filter类
    //字符编码
    String encoding=null;
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if(encoding!=null){
        //设置request字符编码
            request.setCharacterEncoding(encoding);
         //设置response字符编码
            response.setContentType("text/html;charset="+encoding);
        }
     //传递给下一个过滤器
        chain.doFilter(request, response);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
      //获取初始化参数
        encoding=filterConfig.getInitParameter("encoding");
    }
    public void destroy() {
        // TODO Auto-generated method stub
        encoding=null;
    }
}

web.xml

<filter>      <!--注意这里是filter,不要配置成servlet-->
    <filter-name>CharactorFilter</filter-name>    <!--过滤器名称-->
   <filter-class>cn.com.Filter.CharactorFilter</filter-class>  <!--过滤器的完整类名-->  
     <init-param>   <!--初始化参数-->  
         <param-name>encoding</param-name>  <!--参数名称-->  
         <param-value>utf-8</param-value>   <!--参数值-->  
     </init-param>
  </filter>
  <filter-mapping> <!--过滤器映射--> 
      <filter-name>CharactorFilter</filter-name><!--过滤器名称-->   
      <url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->  
      </filter-mapping>

关于java中Filter过滤器解决中文乱码办法就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI