解决使用ssm时前后端传参乱码的问题

     乱码分为两种,第一种是响应乱码,第二种是请求乱码,而前端传入后台又有两种请求区别,POSTGET,这两种又有两种不同的乱码处理方式,话不多说,直入主题

先讲如何处理前端传给后台的乱码

1、GET请求中文乱码处理

      当创建一个tomcat项目时,在项目资源管理器会多出一个Serves工程,打开这个工程,里面有一个server.xml配置文件,打开找到    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>,在里面添加上一个属性   URIEncoding="UTF-8" 即可

2、POST请求中文乱码处理 

    找到web.xml配置文件,在配置中添加一个CharacterEncodingFilter过滤器,添加方法跟添加Servlet一样,如下

<filter>
          <filter-name>CharacterEncodingFilter</filter-name>
          <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
          <init-param>
              <!-- CharacterEncodingFilter中有两个参数 -->
              <!-- 第一个是encoding,encoding是编码方式,将其改为UTF-8即可 -->
              <param-name>encoding</param-name>
              <param-value>UTF-8</param-value>
          </init-param>
          <init-param>
              <!-- 第二个是forceEncoding,这是一个boolean类型变量,意思是是否要设置响应编码  -->
              <!-- 设置为true,就会把响应编码方式改成encoding,即UTF-8 ,这样顺手就把响应编码乱码解决了 -->
              <param-name>forceEncoding</param-name>
              <param-value>true</param-value>
          </init-param>
      </filter>
      
      <filter-mapping>
          <filter-name>CharacterEncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>

3、响应中文乱码处理

最常规的方法,在传参前使用response.setContentType("text/html;charset=UTF-8");即可,不过这样比较麻烦,每次传参都要改一次,直接使用上面解决POST乱码时顺便设置的forceEncoding即可

发布了3 篇原创文章 · 获赞 0 · 访问量 64
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览