专利名称:清空内存数据的方法和装置的制作方法
技术领域:
本发明涉及计算机技术领域,具体而言,涉及清空内存数据的方法和装置。
背景技术:
在软件开发的过程中,开发语言选择的种类很多,有java、JSP等。特别是使用 Java开发软件的人中,使用STRUTS开发架构使用的较多,且使用的用户仅次于JSP。在使用STRUTS开发架构中,如果几个jsp页面共用一个数据缓存类(FORM)时,如 果其中的一个jsp的页面中输入了数据进行提交后,在打开其他jsp页面时,上个jsp提交 的数据会在这个jsp页面中显示出来。存在这样现象的原因是由于这些数据缓存类所使用的数据存在于内存,在一个 jsp页面调用完这些数据缓存类后,这些数据缓存类所使用的数据仍在内存中,当其它jsp 页面在调用这些数据缓存类,内存中会将该数据缓存类的在内存中的数据显示在其它无关 的页面上,从而影响客户的使用。
发明内容
本发明旨在提供一种清空内存数据的方法和装置,其能够解决内存中会将该数据 缓存类的数据显示在其它无关的页面上,从而影响客户的使用问题。根据本发明的一个方面,提供一种清空内存数据的方法,包括判断数据缓存类的函数中是否存在赋值函数;如果存在,则执行所述赋值函数并赋予空值。优选地,所述判断过程包括判断所述数据缓存类的函数的名称是否与赋值函数的名称相同,如果相同,则该 函数为所述赋值函数。优选地,当所述数据缓存类的函数的个数为两个以上时,在将当前赋值函数执行 赋值操作之后,还包括采用顺序或链式遍历下一个所述数据缓存类的函数,并执行所述判断过程。根据本发明的另一个方面,还提供一种清空内存数据的装置,包括识别单元,判断数据缓存类的函数中是否存在赋值函数;赋值单元,执行所述赋值函数并赋予空值。优选地,还包括遍历单元,用于当所述数据缓存类的函数的个数为两个以上时,在所述赋值单元 将当前赋值函数执行赋值操作后,采用顺序或链式遍历下一个所述数据缓存类的函数,并 触发所述识别单元执行判断过程。本发明的方法和装置,由于自动查找在内存中存在数据的函数,因此,可有效避免 内存中驻留有数据的函数在被再次调用时,会将该函数的数据显示在其它无关的页面上, 从而影响客户的使用的问题;提高了用户的使用感受。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1示出了本发明实施例一的流程图;
图2示出了本发明实施例二的流程图;图3示出了本发明实施例三的结构图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。为便于理解本发明的方法和
直ο下面结合图1详细说明本发明的方法实施例一,本发明方法的实施例一包括以下 步骤Sll 判断数据缓存类的函数中是否存在赋值函数;S12 如果存在,则执行所述赋值函数并赋予空值。本发明的方法可以在各种面向对象的编程环境中实现,如Java、C++等,下面给出 本发明的实施例二,以STRUTS架构中的ActionFORM数据缓存类为例说明本发明,首先下面 简单介绍一下STRTUS开发架构Mruts是Apache Jakarta项目的组成部分。该项目的目标是为建立Java Web 应用程序而提供的一个开源框架。通过使用Mruts框架可以改进和提高Java Server Pages (JSP), krvlet、标签库以及面向对象技术在Web应用程序中的应用。Mruts是MVC 的一种实现,它很好地结合了 Jsp,Java Servlet, JavaBean, Taglib等技术。可视化模块 控制器MVC即Model-View-Controller的缩写,它是Web应用中常用的设计模式。MVC减弱 了业务逻辑接口和数据接口之间的耦合,同时让视图层更富于变化。控制器(Controller)的作用是从客户端接受请求,并选择执行相应的业务逻辑, 然后把响应结果送回到客户端。在Mruts中Controller由ActionServlet类和Action 类实现,ActionServlet主要负责接受HTTP请求,Action类负责调用模型的方法,更新模型 的状态,并帮助控制应用程序的流程。视图层主要是由JSP来实现页面显示。它接收到JavaBean和Action Form中的 数据,利用html,taglib, bean, logic等标签显示数据。在Struts中,主要存在三种bean对象,分别是=Action, ActionForm, EJB或者 Java Bean对象。ActionR)rm用来封装客户请求信息,Action取得Actioni7Orm中的数据, 再由EJB或者JavaBean进行处理。由于STRUTS中没有对ActionFORM对象中数据进行清空的函数,如果采用人工清 空函数内数据,会造成效率过低,且也不能及时清空。因此,实施例二中增加新的函数Tools. resetForm(FormName),该函数可清空数据 缓存类在内存驻留的数据。该函数被调用后,会不断遍历数据缓存类所有可能在内存驻留 数据的各个函数,并逐个判断每个函数是否在内存中驻留有数据,如果判断出该函数在内 存中驻留有数据,则将调用该函数,将该函数在内存中驻留的数据值赋予空值。
4
参见图2,包括S21 获取FORM数据缓存类中的所有函数,对于FORM数据缓存类,可能会对应有多个函数,首先获取这些函数;S22 遍历FORM数据缓存类中的各个函数;在遍历时,返回的数组结构对各个函数进行遍历,或根据函数的链接结构进行遍 历,如顺序、链式、树形等,按照原方法函数保存的形式进行遍历;S23 判断的函数的前三个字符是否为set ;对于各个函数,判断函数中是否存在向内存赋值的参数名称,如果存在,则执行 S24,在该实施例中,数据缓存类在内存驻留数据,是由于其调用了赋值函数set,因此,只要 函数是具有set参数名称时,则认为该函数中内存驻留有数据;否则执行步骤S22,继续遍 历;S24 通过invoke函数调用SET方法,并传参数值为空串。由于查找出的函数本身就是赋值函数,因此,直接调用执行即可,不必使用其它赋 值函数,调用执行该函数,赋予空值,将函数在内存中的数据清空。本发明的方法可在函数调用后执行,也可在函数调用前执行。通过本发明的方法, 可将数据缓存类在内存中的数据清空,避免其它程序调用该数据缓存类时,该数据缓存类 在内存中的数据出现在页面上。本发明还提供一种清空内存数据的装置,参见图3,包括识别单元,判断数据缓存类的函数中是否存在赋值函数;赋值单元,执行所述赋值函数并赋予空值。优选地,还包括遍历单元,用于当所述数据缓存类的函数的个数为两个以上时,在所述赋值单元 将当前赋值函数执行赋值操作后,采用顺序或链式遍历下一个数据缓存类的函数,并触发 所述识别单元执行判断过程。从以上的描述中,可以看出,本发明对各个函数进行遍历,并清空所遍历的赋值函 数在内存中的驻留的数据,避免了多个页面程序调用同一数据缓存类时,将该数据缓存类 在内存中的数据显示在其它无关的页面上,从而影响客户的使用。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在 存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中 的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬 件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,对本发明可以有各种更改和变化、修改、等同替换、改进等,均应包含在本发明 的保护范围之内。
权利要求
1.一种清空内存数据的方法,其特征在于,包括 判断数据缓存类的函数中是否存在赋值函数; 如果存在,则执行所述赋值函数并赋予空值。
2.根据权利要求1所述的方法,其特征在于,所述判断过程包括判断所述数据缓存类的函数的名称是否与赋值函数的名称相同,如果相同,则该函数 为所述赋值函数。
3.根据权利要求1所述的方法,其特征在于,当所述数据缓存类的函数的个数为两个 以上时,在将当前赋值函数执行赋值操作之后,还包括采用顺序或链式遍历下一个所述数据缓存类的函数,并执行所述判断过程。
4.一种清空内存数据的装置,其特征在于,包括 识别单元,判断数据缓存类的函数中是否存在赋值函数; 赋值单元,执行所述赋值函数并赋予空值。
5.根据权利要求4所述的装置,其特征在于,还包括遍历单元,用于当所述数据缓存类的函数的个数为两个以上时,在所述赋值单元将当 前赋值函数执行赋值操作后,采用顺序或链式遍历下一个所述数据缓存类的函数,并触发 所述识别单元执行判断过程。
全文摘要
本发明提供了一种清空内存数据的方法和装置,本发明的方法包括判断数据缓存类的函数是否在内存驻留数据;如果存在,则调用所述函数,将所述函数在内存驻留的数据清空。本发明还提供一种清空内存数据的装置,包括识别单元,判断数据缓存类的函数是否在内存驻留数据;赋值单元,如果所述识别单元判断出存在驻留数据,则调用所述函数,将所述函数在内存驻留的数据清空。本发明的方法和装置,由于自动查找在内存中存在数据的函数,因此,可有效避免内存中驻留有数据的函数在被再次调用时,会将该函数的数据显示在其它无关的页面上,从而影响客户的使用的问题;提高了用户的使用感受。
文档编号G06F9/46GK102117220SQ200910244288
公开日2011年7月6日 申请日期2009年12月31日 优先权日2009年12月31日
发明者刘爱国 申请人:北京方正奥德计算机系统有限公司, 北大方正集团有限公司