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