处理提交表单或servlet的定向时经常出现乱码。下面是用filter处理。 在web.xml中加入:
  
<filter> 
    <filter-name>Set Character Encoding</filter-name> 
    <filter-class>web.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
      <param-name>encoding</param-name> 
      <param-value>gbk</param-value> 
    </init-param> 
  </filter> 
  <filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
 对应的java代码:
  
/** 
 * <p>Title: test and study</p> 
 * <p>Description: </p> 
 * <p>Copyright: Copyright (c) 2004</p> 
 * <p>Company: sdzs</p> 
 * @author meconsea 
 * @version 1.0 
 */ 
  
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; 
import javax.servlet.UnavailableException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
public class SetCharacterEncodingFilter implements Filter{ 
  
  public SetCharacterEncodingFilter() { 
  } 
  
  protected String encoding = null; 
  protected FilterConfig filterConfig = null; 
  protected boolean ignore = true; 
  
  public void destroy(){ 
    this.encoding = null; 
    this.filterConfig = null; 
  } 
  
  public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{ 
    if(ignore || request.getCharacterEncoding() == null){ 
      encoding = selectEncoding(request); 
      if(encoding != null){ 
        request.setCharacterEncoding(encoding); 
      } 
    } 
    chain.doFilter(request,response); 
  } 
  
  public void init(FilterConfig filterConfig) throws ServletException { 
    this.filterConfig = filterConfig; 
    this.encoding = filterConfig.getInitParameter("encoding"); 
    String value = filterConfig.getInitParameter("ignore"); 
    if(value == null){ 
      ignore = true; 
    } else if(value.equalsIgnoreCase("true")){ 
       ignore = true; 
    } else if(value.equalsIgnoreCase("yes")){ 
       ignore = true; 
    } else{ 
       ignore = false; 
    } 
  } 
  
  protected String selectEncoding(ServletRequest request){ 
    return this.encoding; 
  } 
  
} 
  
在jsp页面上加入: 
<%@ page contentType="text/html; charset=gbk" %> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gbk"> 
ok了,关于filter的问题,可以参考servlet的内容。  
 
  |