字符集过滤器工具类

package com.zl.filter;

import java.io.IOException;
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 EcodingFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
	 
		
	   HttpServletRequest request=(HttpServletRequest)req;
	   
	   HttpServletResponse response=(HttpServletResponse)res;
	   if(request.getMethod().equals("post")){
		   request.setCharacterEncoding("UTF-8");
	   }else{
	   Enumeration keys=request.getParameterNames();
	   while(keys.hasMoreElements()){
		   String key=(String)keys.nextElement();
		   String[] str=request.getParameterValues(key);
		   for (int i = 0; i < str.length; i++) {
			str[i]=new String(str[i].getBytes("iso-8859-1"),"UTF-8");
		}
	   }
	   }
	   response.setCharacterEncoding("UTF-8");
	   chain.doFilter(request, response);
	 
		
		

	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}

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);
		}
	}

}

package com.zl.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 javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class IndexInitFilter implements Filter{public void destroy() {// TODO Auto-generated method stub}public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)res; request.getRequestDispatcher("fwxx.do?method=indexInit").forward(request, response); chain.doFilter(request, response);}public void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值