package com.accphr.util;

import java.io.IOException;
import java.util.Iterator;
import java.util.Map;

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;

/**
 * 
 * 字符集过滤器
 * 
 */
public class CharacterEncodingFilter implements Filter {

	/* 设置的字符集 */
	private String encoding = "UTF-8";

	public void destroy() {
	}

	@SuppressWarnings("unchecked")
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// 处理服务器到客户端
		response.setContentType("text/html;charset=" + this.encoding);

		// 处理客户端到服务器
		HttpServletRequest req = (HttpServletRequest) request;
		String s = req.getMethod();// 获得表单提交方式
		if (s.equalsIgnoreCase("post")) {
			req.setCharacterEncoding(this.encoding);
		} else if (s.equalsIgnoreCase("get")) {
			Map<String, String[]> map = (Map<String, String[]>) req
					.getParameterMap();
			Iterator<String[]> it = map.values().iterator();
			while (it.hasNext()) {
				String[] paramValues = it.next();
				for (int i = 0; i < paramValues.length; i++) {
					byte[] b = paramValues[i].getBytes("ISO-8859-1");
					paramValues[i] = new String(b, this.encoding);
				}
			}
		}
		chain.doFilter(request, response);
	}

	public void init(FilterConfig config) throws ServletException {
		String encoding = config.getInitParameter("encoding");
		if (StringUtils.isNotBlank(encoding)) {
			this.encoding = StringUtils.trimToBlank(encoding);
		}
	}

}
最近下载更多
lightour LV12019年10月23日
星星
sxjzhjj LV12013年4月26日
星星
最代码官方 LV1552012年8月22日
皇冠皇冠太阳月亮月亮星星星星星星
最近浏览更多
cpla1998 LV85月21日
月亮月亮
yuancong4月1日
暂无贡献等级
lightour LV12019年10月23日
星星
柚子呐2019年5月6日
暂无贡献等级
哈哈叶2019年3月2日
暂无贡献等级
我喜欢肥肥 LV42018年12月12日
月亮
lmy2155 LV12018年7月5日
星星
MelaHu LV22018年3月28日
星星星星
zuidai123zuidai2017年10月23日
暂无贡献等级
xuxiaotong2017年10月17日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友