基于组件的机制的工作原理-SimpleFramework

开发 后端
本篇文章介绍了SimpleFramework框架的组件机制的工作原理,请大家参考。

生命周期:

了解SimpleFramework的生命周期将十分有利于有效地使用 SimpleFramework。这个生命周期包含如下一些步骤:

应用程序的加载

原有的请求及响应过程

拦截Respone所生成的HTML

解析XML中的元数据

Handle的执行

组件渲染

新的HTML响应到浏览器

应用程序的加载

基于SimpleFramework的应用程序可通过定义web.xml文件内的Filter加载,该文件可载入到任何基于 Java EE 的应用服务器。SimpleFramework同时提供了一个Web应用程序的入口类,当然,这不是必须的,但继承自AbstractWebApplication可以更快捷的搭建Web应用程序。下面是一个典型的配置示例:

  1. <servlet> 
  2.     <servlet-name>startup</servlet-name> 
  3.     <servlet-class>net.simpleframework.web.SimpleWebApplication</servlet-class> 
  4.     <load-on-startup>0</load-on-startup> 
  5. </servlet> 
  6. <filter> 
  7.     <filter-name>actionFilter</filter-name> 
  8.     <filter-class<net.simpleframework.web.page.PageFilter</filter-class> 
  9. </filter> 
  10. <filter-mapping> 
  11.     <filter-name>actionFilter</filter-name> 
  12.     <url-pattern>*.jsp</url-pattern> 
  13. </filter-mapping> 
  14. <listener> 
  15.     <listener-class>net.simpleframework.web.page.PageEventAdapter</listener-class> 
  16. </listener> 

 

 

原有的请求及响应过程

该请求及响应过程,SimpleFramework并没有参与,所以,从理论上讲,是可以兼容任何基于Servlet的框架,比如:Struts、SpringMVC等。

拦截Respone所生成的HTML

当响应(Respone)流中产生HTML文档,在还没有flush到浏览器的时候,SimpleFramework会接管该HTML文档,并解析。

解析XML中的元数据

SimpleFramework解析请求中含有XML文件的元信息定义,这些信息是SimpleFramework组件的基础。

Handle的执行

如果定义了HandleClass,SimpleFramework则负责调用该Handle,并把结果送给渲染器。

组件渲染

渲染器(Render)根据组件的定义及Handle的执行结果,生成对应的HTML或Javascript等浏览器元素,以上三个步骤可详见组件请求响应过程。

新的HTML响应到浏览器

***,SimpleFramework把重新组合的HTML推到浏览器端。如果,浏览器端含有异步请求的脚本,则重复执行如上步骤。

组件请求响应过程:

当请求发现有xml描述文件存在时,Simple将获取该请求资源的元信息和组件定义

Simple对响应(Response)到浏览器的HTML进行解析(Filter后处理),并产生HTML解析树

根据请求资源的元信息,改写HTML解析树。请求资源的元信息主要包含以下几个方面(属性):

resourceProvider(资源提供者),定义该请求资源所需的一些基本信息,这些信息将生成HTML所依赖的一些资源及属性,比如js、样式、meta标签等,在Simple的缺省资源提供者实现中,需要依赖propotype.js库

importJavascript、importCSS,定义请求资源所需的js和css

importPage,导入其它xml描述文件

scriptEval,定义脚本解析规则,有三个值:none、first、always,none是不解析脚本,这个是缺省定义,可以加快请求资源的速度;first是在***次实例化组件定义时解析脚本;always是在每次请求时都要解析脚本,并实例化组件定义

scriptContent,定义预执行的脚本

handleClass,定义该请求资源所触发的后台类

根据请求资源的组件定义,改写HTML解析树,主要包含以下几个部分:

获取组件所需要的资源(js、css、jar等),并添加到HTML解析树或类路径下(jar库)

运行组件渲染器,渲染器有两个核心功能:生成浏览器端渲染代码和调用接口类(HandleClass)。渲染器有两个主要实现,一个是基于javascript的渲染器,作用是根据组件定义生成js代码;一个是基于HTML的渲染器,作用是根据组件定义生成HTML代码并添加到与HTML解析树绑定的节点中

如下图所示

 

责任编辑:金贺 来源: SimpleFramework.net
相关推荐

2011-04-22 10:13:35

SimpleFrame

2011-04-22 09:48:51

SimpleFrame

2011-04-22 10:34:09

SimpleFrame

2011-04-29 14:53:56

SimpleFrame

2011-07-01 11:16:14

Struts

2011-04-22 10:45:14

SimpleFrame

2013-12-05 13:46:51

2023-12-27 08:33:47

垃圾回收机制

2010-05-19 13:29:59

2011-07-18 14:08:08

2017-04-05 10:06:59

工作流界面抽象组件

2011-04-21 10:59:44

SimpleFrameWeb

2011-04-29 10:58:11

SimpleFrame

2024-12-18 21:37:24

2019-08-20 14:01:22

HTTPSSSL协议

2009-07-06 12:32:26

JSP引擎

2013-06-04 13:53:30

OSPF路由协议OSPF协议OSPF

2010-08-02 16:14:54

2010-05-05 16:47:57

Unix Tripwi

2020-05-19 09:11:20

机器学习技术数据
点赞
收藏

51CTO技术栈公众号