一、解决中文乱码问题
解决中文乱码问题的关键在于判断字符是什么时候乱码的
先在java程序里刚生成这个值的地方打印一下,如果在控制台输出就乱码了,那就排除浏览器和jsp页面的编码出问题。否则
看浏览器的编码
看这个jsp页面的编码是否设置好了
一般不用怀疑是tomcat的编码出问题,因为如果tomcat8.0之后,不需要设置URIEncoding="UTF-8",默认就是utf-8编码。
如果在刚接受到前端传来的值,后端打印出来就是乱码,那就要用springMVC提供的过滤器(不过我们都将过滤器作为默认的死配置,不管乱不乱码,只要是个springMVC项目就给配上过滤器)
自此之后,web.xml的“死配置”变成了:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--1.注册DispatcherServlet-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联SpringMVC配置文件:通过初始化参数指定SpringMVC配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--配置DispatcherServlet启动级别:数字越小,启动越早-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--所有请求都会被springmvc拦截-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern> <!--但jsp页面除外,/*才包括jsp页面-->
</servlet-mapping>
<!--2.配置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>
</web-app>
但某些极端情况下,springMVC提供的过滤器也没用了。解决办法视频吧
二、JSON的使用
再重申一遍,JSON只是一种数据交换格式,本身可以直接理解成String字符串类型,并不是一种语言。
进入前后端分离时代以后,后端只需要给前端提供一个controller接口,而前端是纯HTML页面,前端和后端完全独立。如何交互?就需要约定好一种数据传输格式——JSON。
2.1 前端拿到后端传来的json
前端需要将json转为js对象才能用。
2.2 Jackson
导jar包
2/配置