一種擴展jsf生命周期的方法及裝置的制造方法
【專利摘要】本申請公開了一種擴展JSF生命周期的方法及裝置,包括:獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean;若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充;根據(jù)填充后的第一后臺bean顯示所述第一視圖。
【專利說明】
_種擴展JSF生命周期的方法及裝置
技術領域
[0001]本申請涉及計算機技術領域,尤其涉及一種擴展JSF(Java Server Faces)生命周期的方法及裝置。
【背景技術】
[0002]JSF生命周期一般有5個階段:恢復視圖階段,該階段中JSF控制器根據(jù)視圖1D查找相應組件,構造后臺視圖結構;如果未發(fā)生視圖切換,則直接進入渲染響應階段;請求應用值階段,綁定界面輸入與后臺視圖結構;更新模型值階段,為后臺托管(Bean)賦值;調(diào)用應用程序階段,執(zhí)行具體后臺Bean的具體業(yè)務;渲染響應階段,顯示新視圖或原視圖。
[0003]在第一次加載一個頁面時,JSF會創(chuàng)建一個空視圖。這個空視圖會在用戶事件產(chǎn)生時進行填充,然后JSF直接過渡到渲染響應階段進行顯示新視圖。當在從當前頁面跳轉到其它頁面并再跳轉到當前頁面時,則由于進行了跨視圖操作,當前頁面的視圖在跳轉過程中會丟失,從而需要在跳轉到當前頁面時,重新創(chuàng)建一個空視圖,并通過人工恢復跨視圖操作前的數(shù)據(jù),從而導致處理速度緩慢。特別是對于企業(yè)級交易系統(tǒng)來說,由于需要頻繁在多個頁面之間跳轉,一方面,保存與恢復視圖信息沒有統(tǒng)一的方法,每一個視圖切換時參數(shù)的傳遞需要增加額外代碼,帶來大量的開發(fā)、測試與維護成本;另一方面,視圖中的緩存沒有統(tǒng)一的清理方式,可能導致服務器額外的內(nèi)存開銷,甚至引發(fā)性能問題。
【發(fā)明內(nèi)容】
[0004]本申請實施例提供一種擴展JSF生命周期的方法及裝置,用以擴展JSF生命周期。
[0005]本申請實施例提供一種擴展JSF生命周期的方法,包括:
[0006]獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean;
[0007]若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充;
[0008]根據(jù)填充后的第一后臺bean顯示所述第一視圖。
[0009]可選的,該方法還包括:
[0010]若確定訪問圖中未緩存與所述第一后臺bean對應的后臺數(shù)據(jù),則將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。
[0011]可選的,該方法還包括:
[0012]判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。
[0013]可選的,所述根據(jù)填充后的第一后臺bean顯示所述第一視圖之后,還包括:
[0014]通過所述第一視圖中的URL鏈接獲得第二視圖標識;
[0015]若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù);
[0016]通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。
[0017]可選的,所述通過所述第一視圖中的URL鏈接獲得第二視圖標識之后,還包括:
[0018]根據(jù)所述第一視圖當前緩存的后臺數(shù)據(jù)的緩存屬性對所述訪問圖中緩存的第一視圖的后臺數(shù)據(jù)進行更新。
[0019]本申請實施例提供一種擴展JSF生命周期的裝置,該裝置包括:
[0020]獲取單元,用于獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean;
[0021]填充單元,用于若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充;
[0022]顯示單元,用于根據(jù)填充后的第一后臺bean顯示所述第一視圖。
[0023]可選的,所述填充單元具體用于:
[0024]若確定訪問圖中未緩存與所述第一后臺bean對應的后臺數(shù)據(jù),則將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。
[0025]可選的,所述裝置還包括清理單元;所述清理單元具體用于:
[0026]判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。
[0027]可選的,所述顯示單元還用于:
[0028]通過所述第一視圖中的URL鏈接獲得第二視圖標識;
[0029]若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù);
[0030]通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。
[0031]可選的,所述填充單元還用于:
[0032]根據(jù)所述第一視圖當前緩存的后臺數(shù)據(jù)的緩存屬性對所述訪問圖中緩存的第一視圖的后臺數(shù)據(jù)進行更新。
[0033]根據(jù)本申請實施例提供的方法及裝置,在創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean之后,若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則可以直接根據(jù)訪問圖中緩存的數(shù)據(jù)對所述第一后臺bean進行填充,從而實現(xiàn)后臺bean的跨視圖的生命周期,提高了系統(tǒng)效率。
【附圖說明】
[0034]為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本申請實施例提供的一種擴展JSF生命周期的方法流程示意圖;
[0036]圖2為本申請實施例提供的一種擴展JSF生命周期的裝置結構示意圖。
【具體實施方式】
[0037]為了使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部份實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
[0038]如圖1所示,為本申請實施例提供一種擴展JSF生命周期的方法流程示意圖,包括:
[0039]步驟101:獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean;
[0040]步驟102:若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充;
[0041]步驟103:根據(jù)填充后的第一后臺bean顯示所述第一視圖。
[0042]本申請實施例中,在處理HTTP(Hyper Text Transport Protocol,超文本傳輸協(xié)議)請求的過程中,可以分析視圖跳轉過程,從而逐步形成完整的訪問圖。
[0043]本申請實施例中,訪問圖中緩存了至少一個視圖的后臺bean的后臺數(shù)據(jù),并且包含各視圖之間跳轉的路徑。后臺Bean中保存了與之對應的視圖中的后臺數(shù)據(jù),一個視圖可以對應一個后臺Bean。
[0044]本申請實施例中,視圖表示組成特定頁面的所有組件,它被保存在客戶端(通常存儲在隱藏字段中)或服務器中(通常在會話中)。
[0045]步驟101中,獲取到的第一視圖標識可以為通過URL(Uniform Resource locator,統(tǒng)一資源定位器)鏈接獲取到的。如果是初次訪問的原始視圖,則可以直接執(zhí)行渲染響應。
[0046]在獲取到第一視圖標識后,進入恢復視圖階段,此時JSF控制器可以根據(jù)第一視圖標識查找相應組件,構造第一視圖,并直接進入渲染響應階段。其中,構造的第一視圖會在用戶事件產(chǎn)生時進行填充相應的后臺數(shù)據(jù),后臺數(shù)據(jù)保存在后臺bean中。
[0047]在渲染響應階段,可以創(chuàng)建與第一視圖標識對應的第一視圖的第一后臺bean。
[0048]本申請實施例中,在渲染響應階段,還可以對訪問圖的數(shù)量進行清理,從而減少緩存的消耗。具體的,構造第一視圖之后,在渲染響應階段,判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。其中,閾值可以為10,當然閾值也可以為其它值,具體可以根據(jù)實際情況確定,在此不再贅述。
[0049]本申請實施例中可以直接將目前不在使用的訪問圖清理掉,也可以按照其他方法對訪問圖進行清理。舉例來說,將最近一段時間內(nèi)最少被使用的訪問圖清理掉,具體的,為每個訪問圖設置一個對應的計時器,當訪問圖被使用時,將該訪問圖對應的計時器清零,在對訪問圖進行清理時,將計時最多的N個計時器對應的訪問圖清理掉。其中,N為大于O的正整數(shù)。
[0050]本申請實施例中,還可以將最少被使用的訪問圖清理掉,具體的,為每個訪問圖設置一個對應的計數(shù)器,當訪問圖被使用時,將該訪問圖對應的計數(shù)器執(zhí)行加一操作。在對訪問圖進行清理時,將計數(shù)最少的N個計數(shù)器對應的訪問圖清理掉。當然,還可以使用其他方法進行清理訪問圖,在此不再贅述。
[0051]步驟102中,還可以將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。
[0052]進一步的,在將后臺數(shù)據(jù)緩存到第一后臺bean中時,還可以根據(jù)后臺數(shù)據(jù)的數(shù)據(jù)屬性進行緩存。若后臺數(shù)據(jù)的數(shù)據(jù)屬性為臨時數(shù)據(jù),則可以不對該后臺數(shù)據(jù)進行緩存;若后臺數(shù)據(jù)的數(shù)據(jù)屬性為非臨時數(shù)據(jù),則可以對該后臺數(shù)據(jù)進行緩存。
[0053]如果通過第一視圖跳轉到第二視圖,則還可以通過與第一視圖對應的訪問圖對第二視圖的后臺數(shù)據(jù)進行緩存。舉例來說,在第一視圖上查詢并選擇交易后發(fā)起修改,進入與交易金額與幣種修改頁面對應的第二視圖。此時,先執(zhí)行第一視圖的恢復視圖階段、請求應用值階段、校驗階段、更新模型值階段、調(diào)用應用程序階段,然后執(zhí)行第二視圖的渲染響應階段。如果是初次進入第二視圖,此時與第一視圖對應的訪問圖中沒有第二視圖中信息,則創(chuàng)建第二視圖的第二后臺Bean,并將第二后臺Bean中的后臺數(shù)據(jù)緩存到第一視圖對應的訪問圖中,從而這樣就實現(xiàn)了跨視圖(從第一視圖到第二視圖)的緩存。
[0054]舉例來說,通過所述第一視圖中的URL鏈接獲得第二視圖標識;若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù);通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。
[0055]需要說明的是,上述過程中,執(zhí)行第一視圖的調(diào)用應用程序階段時,若確定需要跳轉到第二視圖,則在跳轉之前,根據(jù)當前第一視圖的后臺數(shù)據(jù)對與第一視圖對應的訪問圖中的第一視圖的后臺數(shù)據(jù)進行刷新。
[0056]最后,在步驟103中,顯示第一視圖。
[0057]本申請實施例中,在顯示第一視圖的同時,還可以根據(jù)用戶事件產(chǎn)生的后臺數(shù)據(jù)對與第一視圖對應的訪問圖中緩存的后臺數(shù)據(jù)進行更新。
[0058]基于相同的技術構思,本申請實施例還提供一種擴展JSF生命周期的裝置,該裝置可執(zhí)行上述方法實施例。
[0059]如圖2所示,為本申請實施例提供一種擴展JSF生命周期的裝置結構示意圖。
[0060]該裝置可執(zhí)行圖1所示的流程,該裝置包括:
[0061]獲取單元201,用于獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean ;
[0062]填充單元202,用于若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充;
[0063]顯示單元203,用于根據(jù)填充后的第一后臺bean顯示所述第一視圖。
[0064]可選的,所述填充單元202具體用于:
[0065]若確定訪問圖中未緩存與所述第一后臺bean對應的后臺數(shù)據(jù),則將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。
[0066]可選的,所述裝置還包括清理單元;所述清理單元具體用于:
[0067]判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。
[0068]可選的,所述顯示單元203還用于:
[0069]通過所述第一視圖中的URL鏈接獲得第二視圖標識;
[0070]若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù);
[0071]通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。
[0072]可選的,所述填充單元202還用于:
[0073]根據(jù)所述第一視圖當前緩存的后臺數(shù)據(jù)的緩存屬性對所述訪問圖中緩存的第一視圖的后臺數(shù)據(jù)進行更新。
[0074]綜上所述,根據(jù)本申請實施例提供的方法及裝置,在創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean之后,若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則可以直接根據(jù)訪問圖中緩存的數(shù)據(jù)對所述第一后臺bean進行填充,從而實現(xiàn)后臺bean的跨視圖的生命周期,提高了系統(tǒng)效率。
[0075]本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0076]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0077]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0078]盡管已描述了本申請的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
[0079]顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
【主權項】
1.一種擴展JSF生命周期的方法,其特征在于,該方法包括: 獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean; 若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充; 根據(jù)填充后的第一后臺bean顯示所述第一視圖。2.如權利要求1所述的方法,其特征在于,該方法還包括: 若確定訪問圖中未緩存與所述第一后臺bean對應的后臺數(shù)據(jù),則將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。3.如權利要求1所述的方法,其特征在于,該方法還包括: 判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。4.如權利要求1至3任一所述的方法,其特征在于,所述根據(jù)填充后的第一后臺bean顯示所述第一視圖之后,還包括: 通過所述第一視圖中的統(tǒng)一資源定位器URL鏈接獲得第二視圖標識; 若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù); 通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。5.如權利要求1所述的方法,其特征在于,根據(jù)填充后的第一后臺bean顯示所述第一視圖之后,還包括: 根據(jù)所述第一視圖當前緩存的后臺數(shù)據(jù)的緩存屬性對所述訪問圖中緩存的第一視圖的后臺數(shù)據(jù)進行更新。6.一種擴展JSF生命周期的裝置,其特征在于,該裝置包括: 獲取單元,用于獲取第一視圖標識,并在渲染響應階段創(chuàng)建與所述第一視圖標識對應的第一視圖的第一后臺托管bean; 填充單元,用于若確定與所述第一視圖對應的訪問圖中緩存了與所述第一后臺bean對應的后臺數(shù)據(jù),則根據(jù)訪問圖中與所述第一后臺bean對應的后臺數(shù)據(jù)對所述第一后臺bean進行填充; 顯示單元,用于根據(jù)填充后的第一后臺bean顯示所述第一視圖。7.如權利要求6所述的裝置,其特征在于,所述填充單元具體用于: 若確定訪問圖中未緩存與所述第一后臺bean對應的后臺數(shù)據(jù),則將生成的與所述第一視圖對應的后臺數(shù)據(jù)緩存在所述第一后臺bean中。8.如權利要求6所述的裝置,其特征在于,所述裝置還包括清理單元;所述清理單元具體用于: 判斷當前緩存的訪問圖的數(shù)量是否大于閾值,若是,則對當前緩存的訪問圖進行清理。9.如權利要求6至8任一所述的裝置,其特征在于,所述顯示單元還用于: 通過所述第一視圖中的統(tǒng)一資源定位器URL鏈接獲得第二視圖標識; 若確定不存在與所述第二視圖標識對應的第二視圖,則根據(jù)所述第二視圖標識在渲染響應階段創(chuàng)建與所述第二視圖以及所述第二視圖的第二后臺bean,并通過第二后臺bean中緩存所述第二視圖的后臺數(shù)據(jù); 通過所述訪問圖緩存所述第二視圖的后臺bean中緩存的后臺數(shù)據(jù)以及所述第二視圖標識,并顯示所述第二視圖。10.如權利要求6所述的裝置,其特征在于,所述填充單元還用于: 根據(jù)所述第一視圖當前緩存的后臺數(shù)據(jù)的緩存屬性對所述訪問圖中緩存的第一視圖的后臺數(shù)據(jù)進行更新。
【文檔編號】G06F17/30GK105930333SQ201610049305
【公開日】2016年9月7日
【申請日】2016年1月25日
【發(fā)明人】王述振
【申請人】中國銀聯(lián)股份有限公司