前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springmvc解决中文乱码问题

Springmvc解决中文乱码问题

原创
作者头像
爱撒谎的男孩
发布2018-05-10 18:49:31
2.3K3
发布2018-05-10 18:49:31
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

Springmvc解决中文乱码问题

POST

  • 在表单提交的时候,如果遇到中文乱码的情况,springmvc提供了一个CharacterEncodingFilter过滤器,我们只需要在web.xml文件中配置即可

注意

  1. 表单的提交方式必须是post
  2. web.xml中配置CharacterEncodingFilter编码格式要和JSP页面的编码格式一致
  3. 解决中文乱码必须使用过滤器(在DispatcherServlet之前执行),而不能使用springmvc的拦截器,因为过滤器在DispatcherServlet之前,所以设置好编码后,DispatcherServletController都可以获取到正确的数据,而拦截器运行在DispatcherServlet之后,也即是意味着DispatcherServlet获取的数据已经是乱码,那么在拦截器中调整乱码是没有意义的

web.xml配置

代码语言:javascript
复制
    <!-- 配置 CharacterEncodingFilter解决中文乱码问题-->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        
        <!-- 配置编码格式为UTF-8 -->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

GET

  • 即使配置了中文乱码过滤器CharacterEncodingFilter,但是这个只会针对POST请求才会起作用,如果我们在使用GET请求的时候携带的参数有中文的话,那么服务器接收的时候就会产生中文乱码。
  • 我们在eclipse中修改Tomcatserver.xml文件中的内容参数即可,如下:
  • 我们只需要在<connector connectionTimeout="20000"......>在这个最后加上URIEncoding="UTF-8"即可

总结

  • 那么以后创建项目时候的完整的web.xml如下:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Springmvc解决中文乱码问题
    • POST
      • 注意
      • 在web.xml配置
    • GET
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档