乱码处理
编写一个表单:

编写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>
- 配置pom.xml文件(导入jackson、lombok依赖)
- 配置web.xml文件(配置DispatcherServlet和乱码问题)
- 配置Springmvc-servlet.xml文件(扫描注解、视图解析)
- 编写实体类User
- 编写控制类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** 表示这个类下面的方法只会返回字符串
传递一组对象:


打印时间


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

调用该类:


若只想传递一个参数:



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

