Servlet中的字符编码过滤器

1、CharacterEncodingFilter.java

package com.keke.filter;

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 com.keke.util.StringUtil;

/**
 * 字符编码过滤器
 * 创建人:LiPiaoShui
 * 时间:2015年9月26日-下午2:18:39
 * @version 1.0.0
 */
public class CharacterEncodingFilter implements Filter {

	private FilterConfig config;
	
	@Override
	public void init(FilterConfig config) throws ServletException {
		this.config = config;
	}
	
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//获取字符编码配置参数
		String encoding = config.getInitParameter("encoding");
		//设置字符编码
		if(StringUtil.isNotEmpty(encoding)) {
			request.setCharacterEncoding(encoding);
			response.setCharacterEncoding(encoding);
		}
		//把请求和响应传给过滤链中的下一个调用者或Servlet
		chain.doFilter(request, response);
	}

	@Override
	public void destroy() {

	}

}

2、web.xml

<!-- 注册字符编码过滤器 -->
<filter>
	<!-- 过滤器的标识名 -->
	<filter-name>characterEncodingFilter</filter-name>
	<!-- 过滤器对应的实现类 -->
	<filter-class>com.keke.filter.CharacterEncodingFilter</filter-class>
	<!-- 配置初始化参数 -->
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>
<filter-mapping>
	<!-- 过滤器的标识名 -->
	<filter-name>characterEncodingFilter</filter-name>
	<!-- 过滤器的URL匹配模式 -->
	<url-pattern>/*</url-pattern>
</filter-mapping>

猜你喜欢

转载自lipiaoshui2015.iteye.com/blog/2246324