1.今日遇到的报错:

跳转网页出现404原因:

1.检查project structure里面的webapp路径是否正确;

2.检查project structure里的artifaccts里的WEB-INF下是否有lib目录;

3.考虑是不是maven静态资源没有导出

form表单提交后一直无法跳转到对应的url页面:

因为配置tomcat时有写完整项目名,跳转后项目名被自动抹去,导致url不正确

2.解决客户端提交表单后响应回给客户端的数据出现中文乱码的问题

添加过滤器类filter.java

public class EncodingFilter  implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
System.out.println("===========");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}

编写完过滤器类后立马到web.xml注册

    <filter>
<filter-name>encoding</filter-name>
<filter-class>com.lian.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3.JSON格式(重要)前后端数据交互

这里测试内容:后端传给前端json格式字符串并在前端页面打印出来

为了实现代码复用,先封装json格式的工具类

public class JsonUtils {
public static String getjson3(Object object) throws JsonProcessingException {
return getjson3(object,"yyyy-MM-dd HH:mm:ss");
}
public static String getjson3(Object object, String dateFormat) throws JsonProcessingException {
ObjectMapper mapper=new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
//自定义日期的格式
SimpleDateFormat sdf=new SimpleDateFormat(dateFormat);
mapper.setDateFormat(sdf);
return mapper.writeValueAsString(object);
}
}

ORM实体类映射数据库方便测试

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private int age;
private String sex;
}

测试方法1,将java对象以Json字符串形式在前端页面显示

   @RequestMapping(value = "/j1",
produces = {"application/json;charset=UTF-8"})
@ResponseBody//它就不会走视图解析器,直接返回字符串 public String json1() throws JsonProcessingException {
ObjectMapper mapper=new ObjectMapper();
//创建一个对象
User user=new User("秦将1号",3,"男");
String str=mapper.writeValueAsString(user);
return str;
}

测试方法2,将多个java对象包装成列表以Json字符串形式在前端页面显示

@RequestMapping(value = "/j2",
produces = {"application/json;charset=UTF-8"})
@ResponseBody//不加这个会报404,不加它会走视图解析器,而不会直接返回字符串 public String json2() throws JsonProcessingException {
// ObjectMapper mapper=new ObjectMapper();
List<User> users=new ArrayList<User>();
User user1=new User("秦将1号",3,"男");
User user2=new User("秦将2号",3,"男");
User user3=new User("秦将3号",3,"男");
User user4=new User("秦将4号",3,"男");
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4);
return JsonUtils.getjson3(users);
}

测试方法3,同测试方法2

 @RequestMapping(value = "/j3",
produces = {"application/json;charset=UTF-8"})
@ResponseBody//不加这个会报404,它会走视图解析器,而不会直接返回字符串 public String json3() throws JsonProcessingException {
Date date=new Date();
return JsonUtils.getjson3(date,"yyyy-MM-dd HH:mm:ss");
}

测试方法4,java对象和json对象之间的转换

   @RequestMapping(value = "/j4",
produces = {"application/json;charset=UTF-8"})
@ResponseBody//不加这个会报404,它会走视图解析器,而不会直接返回字符串 public String json4() throws JsonProcessingException {
// ObjectMapper mapper=new ObjectMapper();
List<User> users=new ArrayList<User>();
User user1=new User("秦将1号",3,"男");
User user2=new User("秦将2号",3,"男");
User user3=new User("秦将3号",3,"男");
User user4=new User("秦将4号",3,"男");
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4); System.out.println("=====java对象转json字符串=====");
String str1= JSON.toJSONString(users);
System.out.println(str1); String str2=JSON.toJSONString(user1);
System.out.println(str2); System.out.println("=====json字符串转java对象=====");
User jp_user1=JSON.parseObject(str2,User.class);
System.out.println(jp_user1); System.out.println("=====java对象转json对象=====");
JSONObject jsonObject= (JSONObject) JSON.toJSON(user1);
System.out.println(jsonObject.getString("name")); System.out.println("=====json对象转java对象=====");
User to_java_user=JSON.toJavaObject(jsonObject,User.class);
System.out.println(to_java_user);
return "Hello";
}

SpringMVC 解决中文乱码问题以及前后端Json格式数据交互的测试的更多相关文章

  1. springmvc解决中文乱码问题

    1 第一种情况(get接收参数): 最近在用solr做一个搜索服务,发布给手机和pc等客户端调用,调用方式为:   http://www.ganbo.search/search?q="手机& ...

  2. 使用AngularJS实现的前后端分离的数据交互过程

    一. AngularJS简介 AngularJS是什么 AngularJS是一个开源Web应用程序框架.最初是由MISKO Hevery和Adam Abrons于2009年开发,现在是由谷歌维护. A ...

  3. 用springmvc的@RequestBody和@ResponseBody 接收和响应json格式数据

    1.controller @Controller @RequestMapping("/rest/v1") public class WelcomeController { @Req ...

  4. springmvc:配置解决中文乱码的过滤器

    在web.xml中配置以下内容: <!--配置解决中文乱码过滤器--> <filter> <filter-name>characterEncodingFilter& ...

  5. SpringMVC参数绑定学习总结【前后端数据参数传递】

    目录 1. 绑定机制 2. 支持的数据类型 3. 参数请求中文乱码解决 4.自定义类型转换器 5.最后参数绑定学习小结 SpringMVC作为Controller层(等价servlet和struts中 ...

  6. zabbix解决中文乱码问题(没有测试成功)

    zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [root@za ...

  7. Debian 6解决中文乱码

    DEBIAN下中文显示 一.首先检查LOCALE情况 说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在. 1.挂载ISO文件包,前8个ISO包就可以(这里不在 ...

  8. php如何解决中文乱码问题?

    为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,那么为什么会出现这种乱码的情况呢?一般来说,乱码的出现有2种原因,一种是由于编码(charset) ...

  9. MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8

    来看看如何解决乱码问题: 在mysql中默认字符集是latin1, 想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置: [client] default-character-set ...

  10. (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

    « CloudStack+XenServer详细部署方案(10):高级网络功能应用 (总结)CentOS Linux 5.x在GPT分区不能引导的解决方法 » 2013-1 11 (原创)Linux下 ...

随机推荐

  1. 如何确定有价值的RPA场景

    什么是RPA? RPA(Robotic Process Automation,机器人流程自动化)是通过特定的.可模拟人类在计算机界面上进行操作的技术,按规则自动执行相应的流程任务,代替或辅助人类完成相 ...

  2. ArchLinux 作业系统安装教程

    如果你能看到此文,想必你一定玩过不少的发行商发行的 Linux 作业系统或者听说过很多发行商发行的 Linux 作业系统.如果你玩过不少的 Linux 作业系统,对于安装系统可谓是轻车熟路,就是闭着眼 ...

  3. StyleGAN 生成 AI 虚拟人脸,再也不怕侵犯肖像权

    目录 什么是 StyleGAN 如何使用 StyleGAN 下载项目 修改项目 MSVC 运行项目 运行结果 什么是 StyleGAN GAN 是机器学习中的生成性对抗网络,目标是合成与真实图像无法区 ...

  4. C/C++编译构建相关问题

    名词辨析 GNU GNU's Not Unix!的递归缩写 一个自由的操作系统,起源于GNU计划,希望发展出一套完整的开放源代码操作系统来取代Unix 基本组成包括: GNU编译器套装(GCC) GN ...

  5. odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

    模型之间的关系(Relations Between Models) 上一章介绍了为包含基本字段的模型创建自定义视图.然而,在任何真实的业务场景中,我们都需要不止一个模型.此外,模型之间的链接是必要的. ...

  6. easy-excel读取远程地址获得文件进行上传

    背景 作为一个快五年的程序员,一直以来还没有自己维护过自己的技术栈,最近也是有时间,所以也是下定决心,从头开始,一步一步的夯基础.最近在系统化的学习easy-excel,今天遇到了一个问题,特意记录一 ...

  7. KubeSphere 升级 && 安装后启用插件

    KubeSphere 升级 root@master1:~# export KKZONE=cn root@master1:~# kk upgrade --with-kubernetes v1.22.1  ...

  8. python 启动外部程序四种方法

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  9. [Linux]常用命令之【history】#查看历史操作#

    1 历史记录: history history命令就是历史记录. 它显示了在终端中所执行过的所有命令的历史. history //显示终端执行过的命令 history 10 //显示最近10条终端执行 ...

  10. Springboot+Mysql 图书管理系统【源码+sql】

    java项目 学生图书管理系统 (源码+数据库文件)技术框架:java+springboot+mysql后端框架: Spring Boot.Spring MVC.MyBatis Plus前端界面: T ...