版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/95763003
前端和后端交互需要载体,这个载体以我现在了解有两种,一个是json字符串,另一个就是实现serializable持久化对象。
前后端交互,载体不同后端response方式也会不同,分别对应以下两种:
1.json字符串传输,后端response方式,object为对象
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(obj);
System.out.println("json:" + json);
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
2.实现serializable持久化对象传输,
ObjectMapper mapper = new ObjectMapper();
response.setContentType("application/json;charset=utf-8");
mapper.writeValue(response.getOutputStream(),obj);
字符串好理解,对象实现serializable接口后,持久化到内存中为二进制字节流,然后通过response.getOutputStream输出到前端。
这下你应该理解了后端传输中序列化的作用了把,下面再理解概念你或许就更加容易理解多了
对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序; 从字节流创建对象的相反的过程称为反序列化。 而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。
通过实现java.io.Serializable接口,可以在Java类中启用可序列化。它是一个标记接口,意味着它不包含任何方法或字段,仅用于标识可序列化的语义。
我们将得到一个 RuntimeException 异常:主线程中出现异常 java.io.NotSerializableException。