SpringMVC基础三(json)

乱码处理

编写一个表单:

编写EncodingController控制类

测试:

此乱码是在从前端传送到test方法时就已经乱了。

采用过滤器解决乱码

在web.xml中配置SpringMVC的乱码过滤器

XML 复制代码
<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>

重新测试:

JSON

  • JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。
  • 采用完全独立于编程语言的文本格式存储和表示数据
  • 简洁和清晰的层次结构使的JSON成为理想的数据交互语言
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

在JavaScript语言中,一切都是对象,因此,任何JavaScript支持地类型都可以通过JSON来表示,例如:字符串、数字、对象、数组等,看看他地要求和语法格式。

  • 对象表示为键值对,数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON键值对是用来保存JavaScript对象的一种方式,和JavaScript对象地写法也大同小异,键/值对组合中地键名写在前面并用双引号""包裹,使用冒号:分隔,然后紧接着值:

{"name":"张三"}

{"age":"3"}

{"sex":"男"}

JSON是javaScript对象的字符串表示法。它使用文本来表示一个JS对象的信息,本质是一个字符串。

使用JSON.stringiy()将JavaScript对象转换为字符串。

使用JSON.parse()将JSON字符串转换为JavaScript对象。

第一个输出的是对象,可展开,第二个输出的是字符串,无法展开。第三个是将第二个字符串又转换为了对象。

Controller返回JSON数据

Jackson应该是目前比较好的json解析工具了。

此处使用jackson。使用它需要导入jar包。

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.18.3</version>

</dependency>

  1. 配置pom.xml文件(导入jackson、lombok依赖)
  2. 配置web.xml文件(配置DispatcherServlet和乱码问题)
  3. 配置Springmvc-servlet.xml文件(扫描注解、视图解析)
  4. 编写实体类User
  5. 编写控制类UserController

测试结果:

使用jackson包中的ObjectMapper生成对象

若存在中文时会出现乱码。

可以用produces解决乱码

乱码统一解决

在spring中配置:

XML 复制代码
<!--解决json乱码-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="utf-8"/>
            </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>

在类上可以使用**@RestController** 表示这个类下面的方法只会返回字符串

传递一组对象:

打印时间

抽象为工具类

也可将该类设计一个工具类,需要输出时间的时候调用此类,并且给定时间格式:

改动如下:

调用该类:

若只想传递一个参数:

更改输出一组对象的案例:

相关推荐
叶落阁主6 分钟前
Neovim 插件 i18n.nvim 介绍
java·vue.js·vim
渣哥6 分钟前
让集合线程安全的几种靠谱方法
java
dylan_QAQ8 分钟前
Java转Go全过程06-工程管理
java·后端·go
鲸屿19520 分钟前
python之socket网络编程
开发语言·网络·python
没有梦想的咸鱼185-1037-16631 小时前
基于R语言机器学习方法在生态经济学领域中的实践技术应用
开发语言·机器学习·数据分析·r语言
a587691 小时前
消息队列(MQ)初级入门:详解RabbitMQ与Kafka
java·分布式·microsoft·面试·kafka·rabbitmq
千里码aicood1 小时前
【springboot+vue】党员党建活动管理平台(源码+文档+调试+基础修改+答疑)
java·数据库·spring boot
Chan161 小时前
【智能协同云图库】基于统一接口架构构建多维度分析功能、结合 ECharts 可视化与权限校验实现用户 / 管理员图库统计、通过 SQL 优化与流式处理提升数据
java·spring boot·后端·sql·spring·intellij-idea·echarts
先做个垃圾出来………1 小时前
差分数组(Difference Array)
java·数据结构·算法
向上的车轮1 小时前
基于go语言的云原生TodoList Demo 项目,验证云原生核心特性
开发语言·云原生·golang