过滤器 ---- 解决中文乱码(修改版)

 EncodingFilter.java:
package com.fzw.util;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;

import javax.servlet.Filter;
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 EncodingFilter implements Filter{

   private String encoding = "UTF-8";
    
   public String toGBK(String inStr) throws UnsupportedEncodingException{
    String outStr = "";
     if(inStr != null){
      outStr = new String(inStr.getBytes( "ISO-8859-1"), "GBK");
    }
     return outStr;
  }
   public void destroy() {
     // TODO Auto-generated method stub
    
  }

   public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
    
    HttpServletRequest req = (HttpServletRequest)request;
    HttpServletResponse res = (HttpServletResponse)response;    
    
    String method = req.getMethod();    
     if(method.equals( "post")){
      req.setCharacterEncoding( this.encoding);
    } else{
      Enumeration<String> paramNames = req.getParameterNames();
       while(paramNames.hasMoreElements()){
        String name = paramNames.nextElement();
        String[] values = req.getParameterValues(name);
         if(values != null){
           for( int i = 0;i<values.length;i++){
            String vluStr = toGBK(values[i]);
            values[i] = vluStr;
          }
          req.setAttribute(name, values);
        }
      }    
    }
    
    res.setContentType( "text/html;charset=GBK");
    filterChain.doFilter(request, response);
    
  }

   public void init(FilterConfig config) throws ServletException {
    String encoding = config.getInitParameter( "encoding");
     if(encoding != null && encoding.trim().length()>0){
       this.encoding = encoding;
    }
    
  }

}

本文出自 “java世界” 博客,谢绝转载!

你可能感兴趣的:(职场,休闲)