本篇文章给大家分享的是有关基于组件的机制的SimpleFramework工作原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
生命周期:
了解SimpleFramework的生命周期将十分有利于有效地使用 SimpleFramework。这个生命周期包含如下一些步骤:
应用程序的加载
原有的请求及响应过程
拦截Respone所生成的HTML
解析XML中的元数据
Handle的执行
组件渲染
新的HTML响应到浏览器
应用程序的加载
基于SimpleFramework的应用程序可通过定义web.xml文件内的Filter加载,该文件可载入到任何基于 Java EE 的应用服务器。SimpleFramework同时提供了一个Web应用程序的入口类,当然,这不是必须的,但继承自AbstractWebApplication可以更快捷的搭建Web应用程序。下面是一个典型的配置示例:
<servlet> <servlet-name>startup</servlet-name> <servlet-class>net.simpleframework.web.SimpleWebApplication</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <filter> <filter-name>actionFilter</filter-name> <filter-class<net.simpleframework.web.page.PageFilter</filter-class> </filter> <filter-mapping> <filter-name>actionFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <listener> <listener-class>net.simpleframework.web.page.PageEventAdapter</listener-class> </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工作原理是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。