專利名稱:基于jsf開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)及方法
基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)及方法
技術領域:
本發(fā)明涉及利用JSF(JavaServerFaces)框架進行WEB開發(fā)領域,特別涉及一種基于JSF 開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)及方法。背景技術:
隨著J2EE1. 5的發(fā)布,JSF(JavaServerFaces)已成為了JAVA WEB開發(fā)的標準框架,JSF提 供了一種以組件為中心的用戶界面(UI)構(gòu)建方法,從而簡化了JAVA服務器端應用程序的開 發(fā)。JSF引入了基于組件和事件驅(qū)動的開發(fā)模式,使開發(fā)人員可以使用類似于處理傳統(tǒng)界面 的方式來開發(fā)Web應用程序。提供了行為與表達的清晰分離。不用特別的腳本語言或者標記 語言來連接UI組件和Web層。技術為管理組件狀態(tài)提供一個豐富的體系機構(gòu)、處理組件數(shù)據(jù) 、確認用戶輸入和操作事件。但在大型的應用系統(tǒng)開發(fā)中,JSF框架的WEB服務器端需要管理 大量的作為范圍為整個對話的管理類對象,這樣隨著對話的增加就會產(chǎn)生大量的類實例,在 整個會話過程中大量請求過的作為范圍為整個對話的類對象實例會占用很大的內(nèi)存,從而對 服務器的內(nèi)存造成很大的壓力,影響整個WEB的響應速度。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術在大型的應用系統(tǒng)開發(fā)中,JSF框架的WEB服務器端需要管理大量的作 用范圍為整個對話的管理類對象,這樣隨著會話的增加就會產(chǎn)生大量的類實例,在整個會話 過程中大量請求過的會話類型為整個對話的實例會占用很大的內(nèi)存,從而對服務器的內(nèi)存造 成很大的壓力,影響整個WEB的響應速度的技術問題,本發(fā)明提供了一種基于JSF開發(fā)框架的 內(nèi)存優(yōu)化系統(tǒng)及方法。
本發(fā)明解決現(xiàn)有技術存在的問題所采用的技術方案是提供一種基于JSF開發(fā)框架的內(nèi) 存優(yōu)化系統(tǒng)。所述JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)中的所有作用范圍為整個對話的管理類對象 都繼承至同一父類;所述父類的構(gòu)造函數(shù)中包含移除整個對話中除了當前調(diào)用管理類對象的 其它管理類對象的實例的清除管理類對象模塊,其中,所述多個管理類對象通過所述清除管 理類對象模塊與所述父類連接。
根據(jù)本發(fā)明所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)的一優(yōu)選技術方案所述清除管理 類對象模塊為所述父類的構(gòu)造函數(shù)中包含移除整個對話中除了當前訪問頁面綁定的管理類對象的名稱的其它管理類對象的實例的清除管理類對象模塊。
根據(jù)本發(fā)明所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)的一優(yōu)選技術方案所述清除管理 類對象模塊包括用于通過瀏覽器訪問功能頁面的WEB頁面加載模塊,用于頁面加載時產(chǎn)生
一個新的實例的管理類對象加載模塊,用于新實例在實初始化時調(diào)用父類的構(gòu)造函數(shù)清除除 當前正在調(diào)用的管理類對象的其它管理類對象的父類的清除管理類對象模塊。
本發(fā)明提供一種基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法,包括以下步驟 第一步.所有作用范圍為整個對話的管理類對象都繼承至同一父類;
第二步.在作用范圍為整個對話的管理類對象初始化加載中,調(diào)用父類的構(gòu)造函數(shù)中的 清除管理類對象方法,從整個對話中移除其它作用范圍為整個對話的管理類對象。
根據(jù)本發(fā)明所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法一優(yōu)選技術方案所述步驟第二步 進一步包括以下子步驟
首先,加載WEB頁面,調(diào)用WEB頁面綁定的管理類對象,生成相應的管理類對象的實例;
其次,在管理類對象初始化過程中,調(diào)用父類的構(gòu)造函數(shù);
最后,在父類的構(gòu)造函數(shù)中,調(diào)用清除管理類對象方法移除整個對話中除了當前正在調(diào) 用的管理類對象的其它管理類對象的實例。
根據(jù)本發(fā)明所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法一優(yōu)選技術方案所述清除管理類 對象方法具體步驟如下首先,通過系統(tǒng)上下文中得到一個保存對話變量的集合對象;其次 ,迭代包含所有管理類對象名稱的數(shù)組變量,如果迭代出的對象名稱不等于當前正在訪問的 管理類對象的名稱,則從對話變量集合中移除這個對象。
采用上述方法時,本方法通過在系統(tǒng)中使所有管理類對象都繼承至同一父類,通過調(diào)用 父類的構(gòu)造函數(shù)來處理整個對話中的管理類對象,使每個對話在一個對話過程中只保留一個 當前正在訪問的管理類對象的實例,極大的減輕了服務器的內(nèi)存需求;使WEB應用服務器對 應用系統(tǒng)進中請求過的作用范圍為整個對話的管理類對象進行更好的內(nèi)存的管理,保證每個 對話請求中只保留一個當前正請求管理類對象的實例;提高WEB程序的響應速度,提高了服 務器內(nèi)存管理性能。
圖l是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)的框架結(jié)構(gòu)圖2是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)清除管理類對象模塊框架圖3是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的流程圖4是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的清除其它Bean的實例的流程圖;圖5是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的清除管理類對象方法具體流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進行詳細說明。
參照圖l,圖1是是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)的框架結(jié)構(gòu)圖。本實施例中 ,如圖所示,子類l,子類2,子類3等等都是作用范圍為整個對話的管理類對象,它們都繼 承至相同的父類AbstractParent,這樣系統(tǒng)中的管理類對象都擁用共同的父類,都可執(zhí)行父 類的同一構(gòu)造函數(shù)。在父類中有一個為beanNames的字符串數(shù)組類型的數(shù)據(jù)字段,所包含的 都是為JSF框架管理的管理類對象的名稱。所述父類的構(gòu)造函數(shù)中包含移除整個對話中除了 當前調(diào)用管理類對象的名稱的其它管理類對象的實例的清除管理類對象模塊。其中樞咐都是 指所有子類的基類,所有繼承自該類的對象都稱為子類,所有子類都具有基類某些相同特性 或方法(如子女會繼承父親的姓氏)。
參照圖2,圖2是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)清除管理類對象模塊框架圖。 本實施例中,所述清除管理類對象模塊包括頁面加載模塊,清除管理類對象模塊,頁面顯 示模塊。本實施例中當頁面加載模塊101進行頁面加載前會得到頁面綁定的管理類對象102的 一個實例,在管理類對象102進行初始化中會調(diào)用父類的清除管理類對象103的方法清除對話 對象中除當前實例的所有其它管理類對象實例。調(diào)用父類清除管理類對象的具體方法為第 一步.得到系統(tǒng)中對話變量實例(SessionM即)第二步.迭代包含所有管理對象名稱的數(shù)據(jù)變量 清除對話變量中除當前管理類對象的其它管理類對象的實例。
所述第一步從系統(tǒng)上下文中得到一個保存對話變量的集合對象SessionMap,此變量包 含了系統(tǒng)中所有作用范圍為對話范圍的對象實例。
所述第二步迭代包含所有管理對象名稱的數(shù)組變量,當?shù)龅膶ο竺Q不等于當前 正在訪問的管理類對象實例名稱時,則從對話變量SessionMap中移除該管理類對象實例。
參照圖3,圖3是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的流程圖。本實施例的方法通 過對系統(tǒng)中所有作用范圍為整個對話的管理類對象繼承同一父類,然后在父類的構(gòu)造函數(shù)中 對整個對話除了當前頁面加載綁定的管理類對象的實例的其它所有管理類對象進行移除達到 優(yōu)化內(nèi)存的目的。
參照圖4,圖4是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的清除其它管理類對象的實例 的流程圖。本實施例中,如圖所示,父類有一個構(gòu)造函數(shù)方法,和一個清除管理類對象方法 (清除整個對話管理類對象方法)用來執(zhí)行從整個對話中清除對應的管理類對象的實例。當 WEB頁面第一次加載時,會調(diào)用WEB頁面綁定的管理類對象,會在內(nèi)存中生成相應的管理類對
6象的實例,在管理類對象實始化過程中,會調(diào)用父類的構(gòu)造函數(shù)。在父類的構(gòu)造函數(shù)中會調(diào) 用清除管理類對象方法(清除整個對話管理類對象方法)來移除整個對話中除了當前調(diào)用管 理類對象的其它管理類對象的實例。
請參照圖5,圖5是本發(fā)明基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法的清除管理類對象方法具體 流程圖。本實施例中,所述清除管理類對象方法具體步驟如下首先,通過系統(tǒng)上下文中得 到一個保存對話變量的集合對象;其次,迭代包含所有管理類對象名稱的數(shù)組變量,如果迭 代出的對象名稱不等于當前正在調(diào)用的管理類對象的名稱,則從對話變量集合中移除這個對 象。
同理在其它管理類對象加載過程中也同樣會在整個對話中移除除當前正在調(diào)用管理類對 象的其它管理類對象的實例。這樣在系統(tǒng)的當前會話中就只會保留一個當前正在請求的管理 類對象的實例。極大的提高了服務器內(nèi)存管理性能。
本實施例的基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法適用于利用JSF (JavaServer Faces)框架 進行WEB開發(fā)的應用程序中。通過本方法能夠使WEB應用服務器對應用系統(tǒng)進中請求過的作 用范圍為整個對話的管理類對象進行更好的內(nèi)存的管理,保證每個對話請求中只保留一個當 前正請求對象的實例。提高WEB程序的響應速度,提高了服務器內(nèi)管理性能。
采用上述方法時,本方法通過在系統(tǒng)中使所有管理類對象都繼承至同一父類,通過調(diào)用 父類的構(gòu)造函數(shù)來處理整個對話中的管理類對象,使每個對話在一個對話過程中只保留一個 當前正在訪問的管理類對象的實例,極大的減輕了服務器的內(nèi)存需求;使WEB應用服務器對 應用系統(tǒng)進中請求過的會話類型為整個對話的管理類對象進行更好的內(nèi)存的管理,保證每個 對話請求中只保留一個當前正請求對象的實例;提高WEB程序的響應速度,提高了服務器內(nèi) 管理性能。
以上內(nèi)容是結(jié)合具體的優(yōu)選技術方案對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明 的具體實施只局限于這些說明。對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本 發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng),其特征在于所述基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)中所有作用范圍為整個對話范圍的管理類對象都繼承于同一父類,所述父類包括清除管理類對象模塊,其中,所述多個管理類對象通過所述清除管理類對象模塊與所述父類連接。
2.根據(jù)權(quán)利要求1所述基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng),其特征在 于所述清除管理類對象模塊為所述父類的構(gòu)造函數(shù)中包含移除整個對話中除了當前訪問頁面綁定的管理類對象的名稱的其它管理類對象的實例的清除管理類對象模塊。
3.根據(jù)權(quán)利要求2所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng),其特征 在于所述清除管理類對象模塊包括用于通過瀏覽器訪問功能頁面的WEB頁面加載模塊( 101),用于頁面加載時產(chǎn)生一個新的實例的管理類對象加載模塊(102),用于新實例在實 初始化時調(diào)用父類的構(gòu)造函數(shù)清除當前正在調(diào)用的管理類對象的其它管理類對象的父類的清 除管理類對象模塊(103)。
4.一種基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法,其特征在于所述方法 包括以下步驟A. 作用范圍為整個對話范圍的管理類對象繼承至同一父類;B. 在作用范圍為整個對話范圍的管理類對象初始化加載中,調(diào)用父類的構(gòu)造函數(shù)中的 清除管理類對象方法,從整個對話中移除其它管理類對象。
5.根據(jù)權(quán)利要求4所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法,其特征 在于所述步驟B進一步包括以下子步驟Bl.加載WEB頁面,調(diào)用WEB頁面綁定的管理類對象,生成相應的管理對象的實例; B2.在管理類對象的初始化過程中,調(diào)用父類的構(gòu)造函數(shù);B3.在父類的構(gòu)造函數(shù)中,調(diào)用清除管理類對象的方法移除整個對話中除了當前調(diào)用 管理類對象的其它管理類對象的實例。
6.根據(jù)權(quán)利要求4所述的基于JSF開發(fā)框架的內(nèi)存優(yōu)化方法,其特征 在于所述清除理類對象方法具體步驟如下首先,通過系統(tǒng)上下文中得到一個保存對話變量的集合對象;其次,迭代包含所有管理類對象名稱的數(shù)組變量,如果迭代出的對象名稱不等于當前 正在調(diào)用的管理類對象的名稱,則從對話變量集合中移除這個對象。
全文摘要
本發(fā)明涉及一種基于JSF開發(fā)框架的內(nèi)存優(yōu)化系統(tǒng)及方法。所述系統(tǒng)中的所有作用范圍為整個對話范圍內(nèi)的可管理類對象都繼承至同一父類;所述父類的包括清除管理類對象模塊,其中,所述多個管理類對象通過所述清除管理類對象模塊與所述父類連接。所述方法包括第一步.所有作用范圍為整個對話的可管理類對象都繼承至同一父類;第二步.在作用范圍為整個對話的管理類對象初始化加載中,調(diào)用父類的構(gòu)造函數(shù)從整個對話中移除其它管理類對象。本發(fā)明使每個對話在一個對話過程中只保留一個當前正在調(diào)用的管理類對象的實例,極大的減輕了服務器的內(nèi)存需求;保證每個對話請求中只保留一個當前正請求類對象的實例;提高WEB程序的響應速度及服務器內(nèi)管理性能。
文檔編號G06F9/44GK101576824SQ20091030345
公開日2009年11月11日 申請日期2009年6月19日 優(yōu)先權(quán)日2009年6月19日
發(fā)明者利 張 申請人:深圳市科陸電子科技股份有限公司