前后端数据流导向

前后端数据流导向

这只是我的一点个人总结,描述了一些前后端的数据走向,用于初学者对于Web端开发的理解。

模板与ajax

我初学JavaWeb接触到是Servlet | JSP开发;而我的朋友是从前端界面开始学起,经常听到他抱怨,后端一点都不懂,每次都是开发完毕以后由他人改模板;直到某一次,大神给我俩上了一堂课,我才明白了所谓的模板与前后端分离开发。
在我的理解中,模板分为两种:Js模板(前端JavaScript开发的)Jsp模板(后端Java开发的);这些模板的出现简化了数据绑定

  1. 后端模版的使用,例如Jsp,主要是在后端动态生成前端Html代码,数据绑定在生成Html的时候由Java拼接好,然后发送给用户,由浏览器解析。
  2. 而前端”模板”(姑且这么称呼),主要利用了JavaScript来实现。实际使用中,需要Js向服务端请求数据,然后操作Dom树实现数据绑定。例如,最常见的Ajax请求服务器接口,返回给Json数据,实现数据绑定。而一些前端框架,也借鉴了一些后端标签模板的绑定方式,自定义了一些标签来简化绑定操作。

例如:

JSP中最常见的一种语法:
<%=java代码%>,就是一种很常见的模板写法。

而前端去操作的话:

可能都会基于此种方式。

区别:

  1. 从思路上的区别,JSP更想用标签去替代一些AJax请求,直接生成静态页面返回给用户。
  2. 而使用JS去请求数据,使得前后端分工明确,前端开发可以不用去理解后端如何运作,而只需要获取数据,专心于界面美观等UI设计。而后端,也减少了界面上开发的痛苦。

如何使用模板和Ajax,什么时候用哪个?

基于总体,一切从简。

要符合整体设计,不能局限于局部的简单,而忽略整体的设计。过度的批判某一种技术都不是一种好的心态。

我做了一个非常简单的小Demo刚好展示了Ajax和模板的使用。

get和post

我也经常混淆这两个的使用,直到一天看到有人说,为什么不从字面上理解呢?确实,get给人一种从服务器获取的感觉,而post是一种给出的意思。
为什么不用post呢,他完全可以替代get?我说,get和post区别?答:get是url请求,最大1kB;而post是能传输很大的。
字面上,get是获取,只是想从服务器上获取数据。那么,就像你去图书馆借书,你只需要给出书名就可以找到你想借的书了。而post更像是你去考试,你不可能只把姓名学号告诉老师就走了,你还要提交你写的试卷,那么此时,如果数据大于1kB,选择post才是你的唯一手段。而对于,简单的获取请求,使用post显得过于繁琐,而使用get却可以轻松地实现。

Json与IO流

IO流是我在学习Java时学习到的,这个操作是对数据的传输以流(可以理解为移动一壶水需要水的流动)的形式进行,有字节流和字符流两种形式。
而Json对象,在我眼里就是键值对(Map)数据结构,那为什么用Json和IO对比?
因为,在我所接触的开发中,这两种最常用,但是他俩却没有对比性,Json对象在传输时也是IO流,只是在源头增加了解析或者封装Json对象与流之间转换的方法。
但是这两个概念却经常被混淆,引用大神以前说的一句话“一切都是流”
为什么有了Json?我用Json对象的感觉就是方便,尤其是Js的操作,更是简单易用,而Java虽然也有类似的数据结构HashMap,但是操作起来真的不是很方便。

所以,我认为:IO是传输的方式,而Json是为了应用而建立起来的规则,有点类似于TCP和HTTP之间的关系。

IO在我使用中,有两次深刻的理解:

第一次是Servlet开发时,获取Post请求时,request.getInputStream()获取Post数据流,我知道了客户端服务器的交互就是数据流的交互。而对于Json,可以理解为对于收到的数据所封装的一种数据形式规则。

第二次是使用Java进行Socket编程,其中客户端与服务器之间的交互是IO流。我意识到,客户端与服务器之间的交互,都是IO或者说数据流之间的交互。而协议,例如Http,则是对于获取到的IO流转换为人们可理解的数据后形成的规则。流是数据传输的形式,而协议是构建应用的基础。

所以我只想说一句话:一切都是流

你可能感兴趣的:(工作了)