使用过滤器消除中文乱码

有时候我们在处理网页中输入中文的时候常常会发生中文乱码的问题,我们可以通过处理请求的类加上以下代码解决这个问题:

  		servletRequest.setCharacterEncoding("UTF-8");
        servletResponse.setCharacterEncoding("UTF-8");
        servletResponse.setContentType("text/html;char-set=UTF-8");

然而,当处理请求的类过多的时候,在每个请求类中写一遍上面的代码,是相当繁琐的,这个时候,我们可以使用过滤器来实现步骤的简化。
使用方式如下:

1.编写过滤器

public class EncodingFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=UTF-8");


        filterChain.doFilter(servletRequest,servletResponse);

    }

    @Override
    public void destroy() {

    }
}

2.注册过滤器

在web.xml文件中添加以下代码:

 <filter>
    <filter-name>encoding</filter-name>
    <filter-class>top.zhang.filter.EncodingFilter</filter-class>
  </filter>
 <filter-mapping>
   <filter-name>encoding</filter-name>
   <url-pattern>/</url-pattern>
 </filter-mapping>

如代码所示,上面的表示过滤类的位置,而下面路径表示此过滤器会处理所有的请求。

以上完成了过滤器的编写与注册,在以后编写处理类的时候便不再需要进行预处理。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值