www.pudn.com > lucene+mysql+eclipe.rar > SetCharacterEncodingFilter.java


package com.lucene; 
 
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; 
 
/*  
 *@author 申华锋 E-mail:leonshine@qq.com 
 *@version 创建时间:Mar 11, 2008 11:48:34 PM 
 *@description 字符过滤器 
 */ 
public class SetCharacterEncodingFilter implements Filter { 
 
	private String encoding = null; 
	private FilterConfig filterConfig = null; 
	private boolean ignore = true; 
 
	public void destroy() { 
		encoding = null; 
		filterConfig = null; 
	} 
 
	public void doFilter(ServletRequest request, ServletResponse response, 
			FilterChain filterChain) throws IOException, ServletException { 
		if (ignore == true || request.getCharacterEncoding() == null) { 
			String encoding = setCharacterEncoding(request); 
			if (encoding != null) { 
				request.setCharacterEncoding(encoding); 
			} 
		} 
		filterChain.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) { 
			this.ignore = true; 
		} else if (value.equalsIgnoreCase("true")) { 
			this.ignore = true; 
 
		} else { 
			this.ignore = false; 
		} 
	} 
	public String setCharacterEncoding(ServletRequest request) { 
		return this.encoding; 
	} 
 
}