设为主页 销售咨询 客服电话  
   
 
 
 
 
手机浏览器访问WEBSTK发生的那些事
2015-11-14

WEBSTK是公司ERP系列中一个很重要的产品,但是作为开发者,我们能完全了解她的活动行为吗?当我们通过手机点击系统中某一按钮时,会触发一个操作,但是这一个操作要经过多少次的转发才能完成呢?每个人都有自己的回答,但是可能都不太全面。以下我以简单的查询界面中的确定按钮来说明,给出我个人的答案(在此以手机浏览器访问来描述,APP方式还是有些差异)。

一、手机端处理

当手指点击手机屏幕按钮时,首先触摸屏收到信息,它将这个信息转交给操作系统(android ios …),操作系统在收集点击的位置后再派发给浏览器,在不考虑插件的前提下,浏览器会把收到相关信息转交给对应的页面处理,此时的页面是逻辑状态下的页面,以DOM形式存在,页面把信息传递给业务层的JS代码的固定方法中(点击相关的事件代码)。我们ERPJS会搜集相关信息,然后一起打包提交给浏览器,浏览器以HTTP协议发送到WEB服务器。

二、服务器端

1、业务层

首先TOMCAT收到请求,通过解析请求包,找到对应的项目,首先请求先被固定几个过滤器处理(细节保密),因为我们使用了STRUTS,所以当请求经过STRUTS核心过滤器时,首先被AcionMapper封装成STRUTS结构,并根据请求的ACTION产生相应的ACTION PROXY,再会触发STRUTS的默认拦截器,拦截器较多, 在此说明几个常用的。主要经过模型驱动器及一系列封装、转换器,校验器等等。在数据完全符合要求的情况下,请求被完全送到指定的ACTION,此时的ACTION是受SPRING管理的(有配置),然后ACTION会通过SPRINGBEAN池调用指定的SERVICE, SERVICE又会调用对应的DAO来访问数据库。

2、数据层(DAO

DAO中会调用SPRING集成的类,使用HIBERNATE来操作相关数据库功能,操作时首先判断操作的表在链接池中有否,及是否有效。如果必须直接操作数据库的话,就通过JDBC接口,使用SQL标准与数据库通信。通信的原理也是HTTP协议。就是将操作语句以HTTP形式发送至数据库系统。

3、数据库系统

当数据库系统收到客户端(此时的客户端是WEBSERVER)请求后,首先校验SQL语法,校验成功后,根据系统表找到对应数据库,再找到对应表。查询操作时,根据表结构的声明及查询条件,调用对应的索引。如果没有索引则进行表扫描。更新操作还会校验表的约束。操作成功后,会将结果以HTTP协议返回给客户端(此时的客户端是WEBSERVER)。

4、业务层返回

DAO层成功调用SQL后,会将结果返回给SERVICE层,SERVICE层处理相关业务后,再将结果返回给ACTION层。ACTION层会指示STRUTS默认拦截器,对结果进行“解装”(把STRUTS的逻辑包,封装成标准的REQ RES结构),将结果以字符串流的方式发送给手机浏览器。

三、手机端返回处理

手机浏览器接收到WEB 服务器的返回字符流后,再将其按HTML规范解析,生成DOM,其中返回结果所需的JSCSS会缓存处理。DOM生成后再会调用固定JS代码(JS事件)处理业务逻辑。处理好后,用户就可看到点击产生的新页面。

以上只是简单的概括总体流程,细节处理还是相当复杂的,仅浏览器端的处理就能写好几篇文章。而且此处我总体是以逻辑模块划分的角度来分析的,如果真实详细描述会更复杂。以后我会针对每个点,更详细的描述数据传输过程,以励自己更好的学习底层。

 

   
 
   
 
安徽鸿奥软件有限公司
版权所有,翻版必究 ◎2007-2008copyright
皖ICP备17008567号-1
皖公网安备 34030002020793号