jsp代码:
import javax.servlet.*;import javax.servlet.http.*;public class CharsetFilter implements Filter{public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {try{HttpServletRequest httpRequest = (HttpServletRequest)request;String method = httpRequest.getMethod().toLowerCase();if(method.equals("post")){//如果是post,即表单方法,直接设置charset即可request.setCharacterEncoding("UTF-8");}else if(method.equals("get")){//如果是get方法request.setCharacterEncoding("UTF-8");request = new HttpServletRequestWrapper((HttpServletRequest)request){public String getParameter(String str){try{return new String(super.getParameter(str).getBytes("iso-8859-1"),"GBK");}catch(Exception e){return null;} }};}chain.doFilter(request, response);}catch(Exception e){}}public void init(FilterConfig filterConfig) {}}
过滤器配置:
<filter><filter-name>CharFilter</filter-name><filter-class>CharsetFilter</filter-class></filter><filter-mapping><filter-name>CharFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher></filter-mapping>