通过过滤器(Filter)解决JSP的Post和Request中文乱码问题

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>

jsp技术通过过滤器(Filter)解决JSP的Post和Request中文乱码问题,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。