本发明专利技术涉及一种基于JSF开发框架的内存优化系统及方法。所述系统中的所有作用范围为整个对话范围内的可管理类对象都继承至同一父类;所述父类的包括清除管理类对象模块,其中,所述多个管理类对象通过所述清除管理类对象模块与所述父类连接。所述方法包括:第一步.所有作用范围为整个对话的可管理类对象都继承至同一父类;第二步.在作用范围为整个对话的管理类对象初始化加载中,调用父类的构造函数从整个对话中移除其它管理类对象。本发明专利技术使每个对话在一个对话过程中只保留一个当前正在调用的管理类对象的实例,极大的减轻了服务器的内存需求;保证每个对话请求中只保留一个当前正请求类对象的实例;提高WEB程序的响应速度及服务器内管理性能。
【技术实现步骤摘要】
基于JSF开发框架的内存优化系统及方法
本专利技术涉及利用JSF(JavaServerFaces)框架进行WEB开发领域,特别涉及一种基于JSF 开发框架的内存优化系统及方法。
技术介绍
随着J2EE1. 5的发布,JSF(JavaServerFaces)已成为了JAVA WEB开发的标准框架,JSF提 供了一种以组件为中心的用户界面(UI)构建方法,从而简化了JAVA服务器端应用程序的开 发。JSF引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面 的方式来开发Web应用程序。提供了行为与表达的清晰分离。不用特别的脚本语言或者标记 语言来连接UI组件和Web层。技术为管理组件状态提供一个丰富的体系机构、处理组件数据 、确认用户输入和操作事件。但在大型的应用系统开发中,JSF框架的WEB服务器端需要管理 大量的作为范围为整个对话的管理类对象,这样随着对话的增加就会产生大量的类实例,在 整个会话过程中大量请求过的作为范围为整个对话的类对象实例会占用很大的内存,从而对 服务器的内存造成很大的压力,影响整个WEB的响应速度。
技术实现思路
为了解决现有技术在大型的应用系统开发中,JSF框架的WEB服务器端需要管理大量的作 用范围为整个对话的管理类对象,这样随着会话的增加就会产生大量的类实例,在整个会话 过程中大量请求过的会话类型为整个对话的实例会占用很大的内存,从而对服务器的内存造 成很大的压力,影响整个WEB的响应速度的技术问题,本专利技术提供了一种基于JSF开发框架的 内存优化系统及方法。本专利技术解决现有技术存在的问题所采用的技术方案是提供一种基于JSF开发框架的内 存优化系统。所述JSF开发框架的内存优化系统中的所有作用范围为整个对话的管理类对象 都继承至同一父类;所述父类的构造函数中包含移除整个对话中除了当前调用管理类对象的 其它管理类对象的实例的清除管理类对象模块,其中,所述多个管理类对象通过所述清除管 理类对象模块与所述父类连接。根据本专利技术所述的基于JSF开发框架的内存优化系统的一优选技术方案所述清除管理 类对象模块为所述父类的构造函数中包含移除整个对话中除了当前访问页面绑定的管理类对象的名称的其它管理类对象的实例的清除管理类对象模块。根据本专利技术所述的基于JSF开发框架的内存优化系统的一优选技术方案所述清除管理 类对象模块包括用于通过浏览器访问功能页面的WEB页面加载模块,用于页面加载时产生一个新的实例的管理类对象加载模块,用于新实例在实初始化时调用父类的构造函数清除除 当前正在调用的管理类对象的其它管理类对象的父类的清除管理类对象模块。本专利技术提供一种基于JSF开发框架的内存优化方法,包括以下步骤 第一步.所有作用范围为整个对话的管理类对象都继承至同一父类;第二步.在作用范围为整个对话的管理类对象初始化加载中,调用父类的构造函数中的 清除管理类对象方法,从整个对话中移除其它作用范围为整个对话的管理类对象。根据本专利技术所述的基于JSF开发框架的内存优化方法一优选技术方案所述步骤第二步 进一步包括以下子步骤首先,加载WEB页面,调用WEB页面绑定的管理类对象,生成相应的管理类对象的实例;其次,在管理类对象初始化过程中,调用父类的构造函数;最后,在父类的构造函数中,调用清除管理类对象方法移除整个对话中除了当前正在调 用的管理类对象的其它管理类对象的实例。根据本专利技术所述的基于JSF开发框架的内存优化方法一优选技术方案所述清除管理类 对象方法具体步骤如下首先,通过系统上下文中得到一个保存对话变量的集合对象;其次 ,迭代包含所有管理类对象名称的数组变量,如果迭代出的对象名称不等于当前正在访问的 管理类对象的名称,则从对话变量集合中移除这个对象。采用上述方法时,本方法通过在系统中使所有管理类对象都继承至同一父类,通过调用 父类的构造函数来处理整个对话中的管理类对象,使每个对话在一个对话过程中只保留一个 当前正在访问的管理类对象的实例,极大的减轻了服务器的内存需求;使WEB应用服务器对 应用系统进中请求过的作用范围为整个对话的管理类对象进行更好的内存的管理,保证每个 对话请求中只保留一个当前正请求管理类对象的实例;提高WEB程序的响应速度,提高了服 务器内存管理性能。附图说明图l是本专利技术基于JSF开发框架的内存优化系统的框架结构图2是本专利技术基于JSF开发框架的内存优化系统清除管理类对象模块框架图3是本专利技术基于JSF开发框架的内存优化方法的流程图4是本专利技术基于JSF开发框架的内存优化方法的清除其它Bean的实例的流程图;图5是本专利技术基于JSF开发框架的内存优化方法的清除管理类对象方法具体流程图。具体实施方式下面结合附图和实施例对本专利技术进行详细说明。参照图l,图1是是本专利技术基于JSF开发框架的内存优化系统的框架结构图。本实施例中 ,如图所示,子类l,子类2,子类3等等都是作用范围为整个对话的管理类对象,它们都继 承至相同的父类AbstractParent,这样系统中的管理类对象都拥用共同的父类,都可执行父 类的同一构造函数。在父类中有一个为beanNames的字符串数组类型的数据字段,所包含的 都是为JSF框架管理的管理类对象的名称。所述父类的构造函数中包含移除整个对话中除了 当前调用管理类对象的名称的其它管理类对象的实例的清除管理类对象模块。其中樞咐都是 指所有子类的基类,所有继承自该类的对象都称为子类,所有子类都具有基类某些相同特性 或方法(如子女会继承父亲的姓氏)。参照图2,图2是本专利技术基于JSF开发框架的内存优化系统清除管理类对象模块框架图。 本实施例中,所述清除管理类对象模块包括页面加载模块,清除管理类对象模块,页面显 示模块。本实施例中当页面加载模块101进行页面加载前会得到页面绑定的管理类对象102的 一个实例,在管理类对象102进行初始化中会调用父类的清除管理类对象103的方法清除对话 对象中除当前实例的所有其它管理类对象实例。调用父类清除管理类对象的具体方法为第 一步.得到系统中对话变量实例(SessionM即)第二步.迭代包含所有管理对象名称的数据变量 清除对话变量中除当前管理类对象的其它管理类对象的实例。所述第一步从系统上下文中得到一个保存对话变量的集合对象SessionMap,此变量包 含了系统中所有作用范围为对话范围的对象实例。所述第二步迭代包含所有管理对象名称的数组变量,当迭代出的对象名称不等于当前 正在访问的管理类对象实例名称时,则从对话变量SessionMap中移除该管理类对象实例。参照图3,图3是本专利技术基于JSF开发框架的内存优化方法的流程图。本实施例的方法通 过对系统中所有作用范围为整个对话的管理类对象继承同一父类,然后在父类的构造函数中 对整个对话除了当前页面加载绑定的管理类对象的实例的其它所有管理类对象进行移除达到 优化内存的目的。参照图4,图4是本专利技术基于JSF开发框架的内存优化方法的清除其它管理类对象的实例 的流程图。本实施例中,如图所示,父类有一个构造函数方法,和一个清除管理类对象方法 (清除整个对话管理类对象方法)用来执行从整个对话中清除对应的管理类对象的实例。当 WEB页面第一次加载时,会调用WEB页面绑定的管理类对象,会在内存中生成相应的管理类本文档来自技高网...
【技术保护点】
一种基于JSF开发框架的内存优化系统,其特征在于:所述基于JSF开发框架的内存优化系统中所有作用范围为整个对话范围的管理类对象都继承于同一父类,所述父类包括清除管理类对象模块,其中,所述多个管理类对象通过所述清除管理类对象模块与所述父类连接。
【技术特征摘要】
【专利技术属性】
技术研发人员:张利,
申请(专利权)人:深圳市科陆电子科技股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。