SpringBoot响应出现中文乱码的解决方法

 更新时间:2024年02月03日 10:22:48   作者:K_arot  
这篇文章主要介绍了SpringBoot响应出现中文乱码的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考价值,需要的朋友们下面随着小编来一起来学习吧

第一种方式

创建Servlet类

解决乱码也可以直接resp.setContentType("text/html;charset=utf-8"),为了演示使用字符集过滤器类这里先不设置编码格式,输出流记得刷新和关闭。

package com.thugstyle.web;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
 
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.println("<p style='color:orange'>欢迎访问我的servlet</p>");
        out.flush();
        out.close();
    }
}

注册Servlet

@Configuration声明配置类,@Bean可以将方法返回值添加到Spring容器中,可由容器调用

package com.thugstyle.config;
 
import com.thugstyle.web.MyServlet;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CharacterEncodingFilter;
 
@Configuration
public class ConfigApplication {
    @Bean /*在配置类中注册servlet*/
    public ServletRegistrationBean servletRegistrationBean(){
        ServletRegistrationBean bean = new ServletRegistrationBean();
        bean.setServlet(new MyServlet());
        bean.addUrlMappings("/myServlet");
        return bean;
    }
}

启动容器对象

SpringApplication.run返回值为容器对象,可用来测试

package com.thugstyle;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

响应内容出现中文乱码,因此这里需要将字符集过滤器类注册到容器中

注册字符集过滤器类

使用框架中的字符集过滤器类,并声明编码格式为utf-8,指定request和response都使用encoding的值

 @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        FilterRegistrationBean filterBean = new FilterRegistrationBean();
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        /*将文本过滤器类注册到容器中*/
        filter.setEncoding("utf-8");
        filter.setForceEncoding(true);
        filterBean.setFilter(filter);
        filterBean.addUrlPatterns("/*");
        return filterBean;
    }

关闭系统默认过滤器

SpringBoot中默认配置的CharacterEncodingFilter为IS0-8859-1,设置enabled=fales目的是关闭系统默认的字符集过滤器,使用上一步自定义的CharacterEncodingFilter编码格式(utf-8)

server.servlet.encoding.enabled=false

再次访问Servlet发现未出现中文乱码

第二种方式

可以在application.properties配置文件中配置自定义编码格式,其中编码使能开关默认是true可省略,

并设置请求与响应都使用自定义编码格式,这种方式不需要注册CharacterEncodingFilter过滤器,推荐使用。

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true

以上就是SpringBoot响应出现中文乱码的解决方法的详细内容,更多关于SpringBoot响应中文乱码的资料请关注脚本之家其它相关文章!

相关文章

  • java 中匿名内部类的实例详解

    java 中匿名内部类的实例详解

    这篇文章主要介绍了java 中匿名内部类的实例详解的相关资料,这里提供实例来帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-09-09
  • 教你Springboot如何实现图片上传

    教你Springboot如何实现图片上传

    这篇文章主要介绍了教你Springboot如何实现图片上传,首先大家明白图片上传,需要在数据库定义一个varchar类型的img字段图片字段,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Java使用POI导出大数据量Excel的方法

    Java使用POI导出大数据量Excel的方法

    今天需要写一个导出的Excel的功能,但是发现当数据量到3万条时,列数在23列时,内存溢出,CPU使用100%,测试环境直接炸掉。小编给大家分享基于java使用POI导出大数据量Excel的方法,感兴趣的朋友一起看看吧
    2019-11-11
  • Java Spring的核心与设计思想你知道吗

    Java Spring的核心与设计思想你知道吗

    这篇文章主要为大家详细介绍了Java Spring的核心与设计思想,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Java concurrency之集合_动力节点Java学院整理

    Java concurrency之集合_动力节点Java学院整理

    Java集合主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合),有需要的小伙伴可以参考下
    2017-06-06
  • Ibatis配置xml文件CDATA使用方法详解

    Ibatis配置xml文件CDATA使用方法详解

    这篇文章主要介绍了Ibatis配置xml文件CDATA使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • IDEA操作MongoDB及安全认证方式

    IDEA操作MongoDB及安全认证方式

    这篇文章主要介绍了IDEA操作MongoDB及安全认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • AndroidStudio无法新建Java工程的简单解决办法

    AndroidStudio无法新建Java工程的简单解决办法

    AS创建java工程是非常麻烦的,AS没有提供直接创建java工程的方法且常常无法新建,这篇文章主要给大家介绍了关于AndroidStudio无法新建Java工程的简单解决办法,需要的朋友可以参考下
    2024-06-06
  • Java连接MySQL数据库并实现数据交互功能

    Java连接MySQL数据库并实现数据交互功能

    在现代应用中,数据库是不可或缺的一部分,Java 作为一种广泛使用的编程语言,提供了丰富的 API 来与各种数据库进行交互,本文将详细介绍如何在 Java 中连接 MySQL 数据库,并实现基本的数据交互功能,需要的朋友可以参考下
    2024-10-10
  • java 日期各种格式之间的相互转换实例代码

    java 日期各种格式之间的相互转换实例代码

    这篇文章主要介绍了java 日期各种格式之间的相互转换实例代码的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论