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}}
字符集过滤器工具类
最新推荐文章于 2021-03-01 18:34:31 发布