首页 > 编程 > JSP > 正文

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

2020-07-27 21:33:01
字体:
来源:转载
供稿:网友

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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表