过滤器解决 servlet乱码

来源:互联网 发布:淘宝账号解绑手机号 编辑:程序博客网 时间:2024/05/19 20:39

过滤器:

package Fillter;

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 SetEncodingFilter implements Filter {
 private String encoding=null;
 /**
  * 初始化过滤器
  */
public void init(FilterConfig filterConfig) throws ServletException {
 encoding=filterConfig.getInitParameter("encoding");
  
 }

 public void destroy() {
  encoding=null;
  
 }

 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  if(encoding!=null){
   //设定request对象中的字符编码集
   request.setCharacterEncoding(encoding);
   //设定response对象中的字符编码集
   response.setCharacterEncoding(encoding);
   chain.doFilter(request, response);
  }
  
 }

 
}

配置文件web.xml:

<filter>
  <filter-name>SetEncodingFilter</filter-name>
  <filter-class>Fillter.SetEncodingFilter</filter-class>
   <init-param>
      <param-name>encoding</param-name>
      <param-value>GB2312</param-value>
    </init-param>
 </filter>
 
 <filter-mapping>
 <filter-name>SetEncodingFilter</filter-name>
 <url-pattern>/sellSystemPro/*</url-pattern>
 </filter-mapping>