当前位置: 移动技术网 > IT编程>开发语言>Java > java web过滤器处理乱码

java web过滤器处理乱码

2019年07月22日  | 移动技术网IT编程  | 我要评论

我们在servlet页面中读取前台的数据时  经常会出现乱码问题

而自己每次都要在servlet中使用

string encoding="utf-8"; 
request.setcharacterencoding(enconding); 
response.setcharacterencoding(enconding); 

来进行编码的转换  会很麻烦

所以使用过滤器 我们可以避免这些重复的工作

web.xml配置

<filter> 
 <filter-name>encodingfilter</filter-name> 
 <filter-class>com.scx.filter.filter</filter-class> 
 <!-- 初始化参数 --> 
 <init-param> 
  <param-name>encoding</param-name> 
  <param-value>utf-8</param-value> 
 </init-param> 
 </filter> 
 <!-- filter映射关系 --> 
 <filter-mapping> 
 <filter-name>encodingfilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 

filter

package com.scx.filter; 
import java.io.ioexception; 
import javax.servlet.filterchain; 
import javax.servlet.filterconfig; 
import javax.servlet.servletexception; 
import javax.servlet.servletrequest; 
import javax.servlet.servletresponse; 
import javax.servlet.http.httpservletrequest; 
import javax.servlet.http.httpservletresponse; 

public class filter implements javax.servlet.filter{ 
  //读取过滤器配置文件 
  private filterconfig config; 
  public void destroy() { 
    // todo auto-generated method stub 
  } 
  public void dofilter(servletrequest arg0, servletresponse arg1, 
      filterchain chain) throws ioexception, servletexception { 
    // todo auto-generated method stub 
    httpservletrequest request=(httpservletrequest) arg0; 
    httpservletresponse response=(httpservletresponse) arg1; 
    string encoding=config.getinitparameter("encoding"); 
    if(encoding==null||"".equals(encoding)){ 
      encoding="utf-8"; 
    } 
    request.setcharacterencoding(encoding); 
    response.setcharacterencoding(encoding); 
    chain.dofilter(request, response); 
  } 
  public void init(filterconfig arg0) throws servletexception { 
    // todo auto-generated method stub 
    config=arg0; 
  } 
} 

这样的话  在servlet里面读取到的数据就不会出现乱码的情况了

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持移动技术网!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网