zoukankan      html  css  js  c++  java
  • 对于序列化的理解

    什么是序列化?将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后,便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象。

    可以看到,序列化的作用在于储存、传递对象的状态信息。

    那么,前端传输信息到后端跟序列化有关系吗?

    就我目前的知识储备来看,是没有关系的。解释如下:

    例如,前端实现登录效果。通过填写表单,将账号密码通过http协议传输到后端,后端取出账号密码进行校验。在这个过程中,账号密码应该是存在于http协议的请求头中的。后端直接从请求头中提取账号密码即可。而对象序列化可不可以用来传输登录信息呢?

    当然是可以的。

    我们先在前端new一个User对象(这个User对象必须继承java.io.Serializable接口),然后把账号密码通过set赋值的方式赋给该User对象。然后将其转成二进制流,放入http协议的消息主体中,然后我们在后端程序中通过IO来读取消息主体中的二进制流,还原成User对象(准确地说,是带有状态信息的User对象),然后从中提取账号密码等信息,把这些信息赋值给我们后端自己创建的User对象中(或者直接通过二进制流在jvm中创建一个已经初始化了的User对象),接着再使用这个User对象进行登录验证。

    两种方式虽然可以实现一样的功能,但是它们之间是有本质区别的,不能搞混淆了。

  • 相关阅读:
    Visual Studio Code 上java开发环境搭建
    c++编译时打印宏定义
    git使用
    Let's Encrypt申请证书及使用
    使用docker创建aosp编译环境
    项目中使用protobuf 3.0
    ubuntu14.04 安装mono
    ubuntu14.04 安装apache+mysql+php
    Discuz & UCenter 修改手记
    代码细节重构:请对我的代码指手划脚(四)
  • 原文地址:https://www.cnblogs.com/2020-0202/p/13743468.html
Copyright © 2011-2022 走看看