SpringMVC:请求乱码问题处理和json乱码解决方案

简介: SpringMVC:请求乱码问题处理和json乱码解决方案

SpringMVC

javaweb中的过滤器

大家在学习javaweb的时候经常和什么打交道呢?请求与响应,但是每每当我们快乐的敲击键盘时,

页面给出的回应确实该死的乱码,实在令人气愤!

就在在昨天处理SpringMVC练习的时候,发现乱码,

当时会心一笑:

我:小样,哥学过过滤器的想不到吧!

页面:想不到吧老子不吃这一套!

当我设置好请求响应的编码格式和配置好过滤器后心潮澎湃重启tomcat结果=-=,给我来了个熟悉的乱码

1.png

不要急,万能的Spring以及给我们准备好的新的过滤器!

通过继续学习课程我迎来了一个全新的过滤器!SpringMVC提供给我们的过滤器,让我们可以只编写配置文件就可以解决编码问题


SpringMVC中的过滤器!!

使用方法和我们的过滤器一样,都是在web.xml中配置,便捷之处就是我们可以不用自己编辑过滤器,SpringMVC都给我们写好了

可以加入直接使用


  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


唯一的配置区别就是过滤器的class变成了Spring包中的字符编码过滤器,

使用之后就有告别了这万恶的乱码!芜湖!


接下来是json乱码问题!!!我使用的是jackson和阿里的fastjson

json中出现乱码,因为编码问题的原因,我们在mvc下传递json就会出现中文是??的状况,这个问题呢我学到两种解决方案


第一种是相对原生态一点的

在我们的映射注解 @RequestMapping("/t1")中有个功能叫produces

我们可以通过设置这个produces的属性来做到json的字符编码设置

1.png


第二种是用SpringMVC配置文件中来完成

这个相对上一个方法来说,一劳永逸,只需要配置一次,这个项目都不需要在去配置,一般用到json我建议就把这段配置放到Spring的配置文件中

    <mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg value="utf-8"></constructor-arg>
        </bean>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper">
                <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                    <property name="failOnEmptyBeans" value="false"/>
                </bean>
            </property>
        </bean>
    </mvc:message-converters>
    </mvc:annotation-driven>

 

相关文章
|
1月前
|
XML JSON 安全
SSM:请求参数与回显&json
本文介绍了请求参数处理、过滤器和拦截器的使用方法。包括如何通过 `@RequestParam` 和 `@ModelAttribute` 绑定请求参数,使用 Lombok 简化实体类开发,实现过滤器处理字符编码,以及配置拦截器进行请求前后的处理。同时,还展示了如何使用 `@ResponseBody` 返回 JSON 数据,并解决了 JSON 编码问题。
|
1月前
|
JSON API 数据格式
postman如何发送json请求其中file字段是一个图片
postman如何发送json请求其中file字段是一个图片
117 4
|
1月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
1月前
|
JSON 前端开发 Java
【Spring】“请求“ 之传递 JSON 数据
【Spring】“请求“ 之传递 JSON 数据
87 2
|
1月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
54 2
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
112 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
JSON API 数据格式
使用Python发送包含复杂JSON结构的POST请求
使用Python发送包含复杂JSON结构的POST请求
|
1月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
61 1
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向