WEB开发的套路——数据流向的套路

一、引子

   前几天发布博文《福斯数据服务平台产品白皮书》,收到几封私信,问的都是这个平台是个什么鬼,用来干什么。

  对于此类问题,在此做一个统一回复。对于问题,我一般都反问:数据服务如何理解?

  字面理解,为(应用)提供数据方面的服务。例如:数据接口,WEB应用调用数据接口获取相关的数据内容。

  如果能够理解到这里,友谊的小船才能继续划。

  进入正题:WEB开发的数据导向。既然是导向,无非正向与反向。

  反向:从WEB页面的数据展示→数据库中的数据存储;

  正向:从数据存储(数据库)数据展示(WEB页面)。

二、WEB开发的反向(页面数据展示→数据库)

按:数据展示→数据解析(页面端)→数据传输→数据包装→数据访问

1、页面数据展示的套路

有2种:

(1)JSTL+EL表达式,在页面跳转之前通过Controller层传入数据,再通过EL表达式+JSTL标签进行展示

           使用JSTL标签可以实现List、Map容器的数据展示;

           仅用EL表达式只能显示POJO的属性(详情页面)

(2)AJAX请求数据并拼凑HTML文本块,填充到页面组件(DIV、SPAN)中

          通过ajax方式调用本地的Controller(暂不考虑ajax跨域的解决方案),获取通过JSON格式编码的数据集

第(1)种方式的适用性:数据只能在页面初始化时加载1次,要重新加载数据只能刷新页面,数据可直接嵌入到HTML中

第(2)种方式的适用性:可以不限次调用数据,数据需要与展示数据的组件进行绑定(MVC),数据展示的更新靠改变组件的HTML内容

伏笔:能否把这2种方式进行结合:用AJAX获取数据,用el表达式的方式实现数据内容嵌入到HTML?

2、数据解析的套路

沿用展示套路:

(1)JSTL+EL表达式展示的内容是对象实例(POJO)或对象实例容器,使用el表达式,${pojo.property}的方式读取数据

(2)Ajax方式展示的内容是JSON对象(JSONObject),使用obj[key]的方式读取数据

3、数据传输的套路

传输的方式只有一种:HTTP通信

4、数据的包装

仅针对AJAX方式,不考虑JSTL方式。传输给WEB页面的数据必须包装成JSON格式

(1)如果是数据以对象实例进行存储,则必须将POJO或POJO容器(类表或视图)转换成JSON对象或数组;

(2)如果是以其他编码(XML,CSV)等,则必须先转换成POJO再转换成JSON 。

(一般借助JSON工具,可以将POJO类转换成标准JSON对象)

5、数据访问的套路

(1)使用Hibernate JPA,实现了数据集(ResultSet)到对象集(POJO容器)的包装

(2)使用Spring Data JPA,实现了数据集(ResultSet)到对象集(POJO容器)的包装

(3)使用JDBC,需要自己包装数据集(ResultSet)到对象集(POJO容器)

(4)使用HTTP客户端(HttpClient)调用数据接口,既可以调用本地的数据访问层,也可以调用远程(包括第三方系统),属于后端调用

           一般返回的格式是JSON或XML。可以直接返回JSON给WEB页面,或者转换成POJO再返回JSON内容给页面


而福斯数据服务平台其中的数据集资源定义,就是用于定义数据接口,供AJAX方式或Service层调用

开发者只需配置的方式定义数据集(JDNI)、数据源定义(SQL或存储过程)和分页设置。

至于数据访问、数据包装、数据传输的工作都有平台来完成,接口的输出是标准的JSON格式。

WEB前端可以直接进行解析(AJAX方式调用);

Service层可以将JSON对象转换成POJO后进行后续处理(HttpClient方式调用)。

至于,什么数据库资源的释放、数据编码、格式的转换,统统无需开发者操心。如是而已。

【未完待续】

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值