• [springMVC学习]8、解决springmvc中文乱码问题


    目录

    简介

    解决中文乱码问题

    自定义过滤器

    springMVC提供的过滤器

    总结


    简介

            我们下面代码可以获取一个name的参数,如下

    1. @RequestMapping("/f1")
    2. public String f1(String name) {
    3. System.out.println("name:" + name);
    4. return "success";
    5. }

            我们请求这个handler,传入一个name参数,使用中文

             查看控制台输出

            可以发现,出现了乱码问题,下面来进行解决


    解决中文乱码问题

                有2种方式可以进行解决,一种是自定义filter,还有一种就是配置springmvc的filter


    自定义过滤器

            首先创建一个过滤器,然后通过设置编码为utf-8即可

    1. public class MyFilter implements Filter {
    2. @Override
    3. public void init(FilterConfig filterConfig) throws ServletException {
    4. }
    5. @Override
    6. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    7. servletRequest.setCharacterEncoding("utf-8");
    8. filterChain.doFilter(servletRequest, servletResponse);
    9. }
    10. @Override
    11. public void destroy() {
    12. }
    13. }

             然后在web.xml中进行配置

    1. <filter>
    2. <filter-name>myFilterfilter-name>
    3. <filter-class>com.ttpfx.springMVC.controller.MyFilterfilter-class>
    4. filter>
    5. <filter-mapping>
    6. <filter-name>myFilterfilter-name>
    7. <url-pattern>/*url-pattern>
    8. filter-mapping>

            然后就可以解决中文乱码问题了


    springMVC提供的过滤器

            springMVC提供了一个过滤器来专门解决编码的问题,我们只需要配置即可

    1. <filter>
    2. <filter-name>characterEncodingFilterfilter-name>
    3. <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    4. <init-param>
    5. <param-name>encodingparam-name>
    6. <param-value>utf-8param-value>
    7. init-param>
    8. filter>
    9. <filter-mapping>
    10. <filter-name>characterEncodingFilterfilter-name>
    11. <url-pattern>/*url-pattern>
    12. filter-mapping>

             我们通过CharacterEncodingFilter这个类进行过滤,在init-param里面设置编码即可,我们设置的encoding就是该类的一个属性


    总结

            上面的2种方式均可以解决乱码问题,建议选择第二种 

  • 相关阅读:
    IT创业项目-赚钱项目-网赚项目:月入2W+的视频号创业项目
    条码扫描器:打开一个全新的数字世界
    Keras深度学习实战(20)——DeepDream模型详解
    微信小程序如何关联视频号直播
    Git的使用之分支操作
    如何用seay对dvwa起始页面进行代码审计
    Java 官方提供了哪几种线程池,分别有什么特点?
    CSDN编程竞赛第六期总结
    Spring Boot整合swagger
    Android Media Framework - 开篇
  • 原文地址:https://blog.csdn.net/m0_51545690/article/details/126049122