主页 > 知识库 > 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题

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

热门标签:Linux服务器 科大讯飞语音识别系统 服务器配置 Mysql连接数设置 阿里云 电子围栏 团购网站 银行业务

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>
您可能感兴趣的文章:
  • springboot中不能获取post请求参数的解决方法
  • spring cloud gateway中如何读取请求参数
  • Filter中获取传递参数方式(解决post请求参数问题)

标签:枣庄 江苏 萍乡 衢州 广元 大理 蚌埠 衡水

巨人网络通讯声明:本文标题《通过过滤器(Filter)解决JSP的Post和Request中文乱码问题》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266