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

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

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

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

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

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

    当然是可以的。

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

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

  • 相关阅读:
    (总结)Nginx配置文件nginx.conf中文详解(转自:http://www.ha97.com/5194.html)
    位图数据压缩算法
    sqlalchemy 使用
    Linux c 使用数学函数库出现问题.
    小笔记
    hibernate框架的学习(一)
    foreach
    发现的问题
    第一天练习
    进制转换
  • 原文地址:https://www.cnblogs.com/2020-0202/p/13743468.html
Copyright © 2011-2022 走看看