亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種實(shí)現(xiàn)Web訪問的方法和Web服務(wù)器的制作方法

文檔序號:6340924閱讀:285來源:國知局
專利名稱:一種實(shí)現(xiàn)Web訪問的方法和Web服務(wù)器的制作方法
技術(shù)領(lǐng)域
本申請涉及網(wǎng)絡(luò)技術(shù)處理領(lǐng)域,特別涉及一種實(shí)現(xiàn)Web訪問的方法和Web服務(wù)器。
背景技術(shù)
在Web應(yīng)用開發(fā)中,客戶端向Web服務(wù)器發(fā)送請求,Web服務(wù)器接收該請求并由相應(yīng)的Web組件進(jìn)行處理,生成響應(yīng)信息,Web服務(wù)器再將響應(yīng)信息發(fā)送給客戶端,從而實(shí)現(xiàn) Web訪問。其中,Web組件是Web服務(wù)器中完成特定功能的程序単元。目前,越來越多的Web 開發(fā)環(huán)境支持MVC^Model-View-Controller,模型-視圖-控制器)的設(shè)計(jì)模式,用于描述應(yīng)用程序結(jié)構(gòu)以及程序結(jié)構(gòu)中的各部分的職責(zé)和交互方式,模型用于封裝數(shù)據(jù),視圖用于展示頁面,通常實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出功能,控制器主要用于完成業(yè)務(wù)邏輯。以MVC設(shè)計(jì)模式為例,現(xiàn)有的實(shí)現(xiàn)Web訪問的方法中,首先,Web服務(wù)器接收客戶端提交的用戶請求后根據(jù)該請求的業(yè)務(wù)功能查找對應(yīng)的Web組件(例如用戶為登錄請求時(shí)則查找處理登錄請求的Web組件),然后創(chuàng)建Web組件實(shí)例及對應(yīng)該實(shí)例的實(shí)例變量(該實(shí)例變量用于在實(shí)現(xiàn)Web訪問過程中緩存與用戶請求對應(yīng)的請求數(shù)據(jù)及需要返回的響應(yīng)數(shù)據(jù));Web服務(wù)器將請求數(shù)據(jù)設(shè)置到實(shí)例變量中,再調(diào)用Web組件實(shí)例的方法以響應(yīng)所述請求數(shù)據(jù),并將該Web組件實(shí)例的方法的返回值(即是針對所述用戶請求的響應(yīng)數(shù)據(jù))同樣置于實(shí)例變量中,最后將存儲有響應(yīng)數(shù)據(jù)的實(shí)例變量再設(shè)置到Web上下文中,以便從Web上下文中獲取到該響應(yīng)數(shù)據(jù)渲染為Web頁面輸出給客戶端。其中,客戶端提交的請求數(shù)據(jù)以及Web服務(wù)器的響應(yīng)數(shù)據(jù)會先置于Web上下文中,Web上下文是Web服務(wù)器中的存儲區(qū)域, 負(fù)責(zé)不同Web組件之間的數(shù)據(jù)交換。從上述過程中可以看出,Web服務(wù)器在接收到用戶請求進(jìn)行處理時(shí),是通過實(shí)例變量來獲取請求數(shù)據(jù)及響應(yīng)數(shù)據(jù),但是Web組件通常對應(yīng)多個(gè)方法,現(xiàn)有技術(shù)中每個(gè)方法的請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)都需要放在實(shí)例變量中,并且Web組件的方法中也沒有對實(shí)例變量中的各種數(shù)據(jù)進(jìn)行說明和解釋,因此Web服務(wù)器就比較不容易區(qū)別實(shí)例變量中的請求數(shù)據(jù)和響應(yīng)數(shù)據(jù),也無法從ー個(gè)Web組件方法的參數(shù)中直觀的獲取請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)的屬性, 例如,哪些請求數(shù)據(jù)或響應(yīng)數(shù)據(jù)才對應(yīng)客戶端提交的用戶請求。上述過程會進(jìn)ー步増加了服務(wù)器在響應(yīng)用戶請求時(shí)的處理步驟,從而影響服務(wù)器的處理效率及處理性能。從程序設(shè)計(jì)者的角度,上述設(shè)計(jì)在語義上無法將功能設(shè)計(jì)直接表達(dá)在組件設(shè)計(jì)上,在語義上難以理解,導(dǎo)致程序可讀性差??傊?,目前需要本領(lǐng)域技術(shù)人員迫切解決的ー個(gè)技術(shù)問題就是如何能夠創(chuàng)新的提出一種實(shí)現(xiàn)Web訪問的方法,以解決現(xiàn)有技術(shù)中因?yàn)闊o法很好的區(qū)別實(shí)例變量中的請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)以及Web組件的方法中沒有對應(yīng)的參數(shù)說明,導(dǎo)致組件行為語義不明確的設(shè)計(jì)問題,以及基于實(shí)例變量綁定技術(shù)中,Web組件每次創(chuàng)建的處理效率和處理性能下降的問題
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種實(shí)現(xiàn)Web訪問的方法,用以解決現(xiàn)有技術(shù)中因?yàn)闊o法很好的區(qū)別實(shí)例變量中的請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)以及Web組件的方法中沒有對應(yīng)的參數(shù)說明,導(dǎo)致Web組件行為語義不明確,以及Web服務(wù)器處理效率和處理性能下降的問題。本申請還提供了一種實(shí)現(xiàn)Web訪問的系統(tǒng),用以保證上述方法在實(shí)際中的實(shí)現(xiàn)及應(yīng)用。為了解決上述問題,本申請公開了一種實(shí)現(xiàn)Web訪問的方法,包括根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法;按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù);以所述請求數(shù)據(jù),作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法;依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中;將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。本申請還公開了ー種Web服務(wù)器,包括查找單元,用于根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法;獲取單元,用于按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù);調(diào)用方法単元,用于以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web 組件方法;存儲單元,用于依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中;顯示單元,用于將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點(diǎn)在本申請中,通過對Web組件的方法按語義進(jìn)行設(shè)計(jì),更準(zhǔn)確的在程序級別表達(dá)功能設(shè)計(jì)的語義。預(yù)先設(shè)置形式參數(shù)聲明和返回參數(shù)聲明,形式參數(shù)聲明可以表示從Web 上下文中獲取與客戶端請求對應(yīng)的請求數(shù)據(jù)的來源,而返回參數(shù)聲明可以表示當(dāng)調(diào)用Web 組件的方法完畢之后生成的返回值,應(yīng)該存儲于所述Web上下文中的哪個(gè)范圍,Web服務(wù)器就能夠很容易區(qū)分出請求數(shù)據(jù)的屬性以及處理當(dāng)前客戶端提交請求需要獲取哪些請求數(shù)據(jù)。同吋,在調(diào)用組件的方法之后也很容易找到存儲位置,這樣就減少了服務(wù)器在響應(yīng)用戶請求時(shí)的處理步驟,從而提升服務(wù)器的處理效率及處理性能。進(jìn)ー步的,在調(diào)用Web組件的方法之前還可以判斷是否存在實(shí)例,如果有,則直接調(diào)用已經(jīng)存在的實(shí)例對應(yīng)的Web組件的方法,進(jìn)ー步可以節(jié)省創(chuàng)建Web組件的方法的實(shí)例的步驟,優(yōu)化Web服務(wù)器的性能。當(dāng)然, 實(shí)施本申請的任ー產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。


為了更清楚地說明本申請實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的ー些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本申請的ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例1的流程圖;圖2是本申請的ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例2的流程圖;圖3是本申請的ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例3的流程圖;圖4是本申請的ー種實(shí)現(xiàn)Web訪問的裝置實(shí)施例1的結(jié)構(gòu)框圖;圖5是本申請的ー種實(shí)現(xiàn)Web訪問的裝置實(shí)施例2的結(jié)構(gòu)框圖;圖6是本申請的ー種實(shí)現(xiàn)Web訪問的裝置實(shí)施例3的結(jié)構(gòu)框圖;。
具體實(shí)施例方式下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。本申請可用于眾多通用或?qū)S玫挠?jì)算裝置環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、Web 服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器裝置、包括以上任何裝置或設(shè)備的分布式計(jì)算環(huán)境等等。本申請可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。本申請的主要思想之一可以包括,在Web組件的方法中預(yù)先設(shè)置形式參數(shù)聲明和返回參數(shù)聲明,形式參數(shù)聲明可以表示從Web上下文中獲取與客戶端請求對應(yīng)的請求數(shù)據(jù)的來源,而返回參數(shù)聲明可以表示當(dāng)調(diào)用Web組件的方法完畢之后生成的返回值,應(yīng)該存儲于所述Web上下文中的哪個(gè)范圍,因此Web服務(wù)器就很容易區(qū)分出請求數(shù)據(jù)的屬性以及處理當(dāng)前客戶端提交請求需要從Web上下文中獲取哪些請求數(shù)據(jù),同吋,在調(diào)用Web組件的方法之后也很容易找到返回值在Web上下文的存儲位置,這樣就減少了 Web服務(wù)器在響應(yīng)用戶請求時(shí)的處理步驟,從而提升Web服務(wù)器的處理效率及處理性能。參考圖1,示出了本申請ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例1的流程圖,可以包括以下步驟步驟101 =Web服務(wù)器根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。在進(jìn)行Web訪問吋,Web服務(wù)器接收客戶端提交的用戶請求,可以根據(jù)該請求的 URL (Uniform Resource Locator,統(tǒng)ー資源定位符)查找到處理所述客戶端請求的Web組件,Web組件中包括有相應(yīng)的業(yè)務(wù)方法,即Web組件的方法。例如,如果Web服務(wù)器檢測到客戶端請求為提交訂單請求,則Web服務(wù)器會相應(yīng)的查找到處理訂單的Web組件。這里查找的Web組件隨著客戶端請求的業(yè)務(wù)功能不同而表示不同的Web組件。本申請實(shí)施例中提到的方法是相對于Web組件來說的,用來表示某個(gè)Web組件的行為。步驟102 按照所述Web組件的方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù)。在本申請實(shí)施例中,Web組件的方法需要包括形式參數(shù)聲明,根據(jù)該形式參數(shù)聲明可以從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù)。需要說明的是,Web組件的方法需要預(yù)先設(shè)置形式參數(shù)聲明,在實(shí)際應(yīng)用中形式參數(shù)聲明可以體現(xiàn)出請求數(shù)據(jù)的來源及名稱等信息,以便于Web服務(wù)器按照該形式參數(shù)聲明可以從Web上下文中獲取請求數(shù)據(jù)。但是形式參數(shù)聲明只要在內(nèi)容上可以示意出請求數(shù)據(jù)即可,關(guān)于形式參數(shù)聲明的具體內(nèi)容在下一個(gè)實(shí)施例將進(jìn)行詳細(xì)解釋。在設(shè)置好形式參數(shù)聲明之后,Web服務(wù)器中的Web組件按照形式參數(shù)聲明中的內(nèi)容就能夠獲取到請求數(shù)據(jù)。所述Web上下文是Web服務(wù)器中的存儲區(qū)域,它分為不同作用的幾個(gè)范圍,用于存儲不同類型的數(shù)據(jù),不同范圍存儲的數(shù)據(jù)對于不同的Web組件來講具有不同的可見性。例如Parameter范圍只能存儲客戶端本次請求提交的數(shù)據(jù);Request范圍能存儲本次請求到響應(yīng)結(jié)束前不同Web組件之間共享的數(shù)據(jù);Cookie范圍可以從客戶端Cookie中存儲或獲取當(dāng)前用戶多次請求間共享的數(shù)據(jù);Session范圍可以存儲或獲取當(dāng)前用戶多次請求間共享的數(shù)據(jù);Application范圍可以存儲或獲取ffeb krver運(yùn)行時(shí)所有在線的用戶間共享的數(shù)據(jù)。步驟103 以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法。將步驟102中獲取到的請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用步驟101查找到的Web組件方法,以執(zhí)行該Web組件方法并在該方法調(diào)用完畢之后獲得該方法的返回值。該返回值即是Web服務(wù)器對客戶端提交的請求進(jìn)行響應(yīng)之后的響應(yīng)數(shù)據(jù)。步驟104 依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中。需要說明的是,所述Web組件方法中除了所述形式參數(shù)聲明,還包括返回參數(shù)聲明。形式參數(shù)聲明可以表示出從Web上下文中獲取哪些請求數(shù)據(jù),而返回參數(shù)聲明則可以表示出將Web組件方法的返回值存儲于所述Web上下文中的哪些區(qū)域。因此本步驟Web服務(wù)器在Web組件的方法執(zhí)行完畢之后,會按照返回參數(shù)聲明表示出的存儲區(qū)域?qū)⒎祷刂荡嬗谒鯳eb上下文中。步驟105 將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行
顯示 O在本步驟中則由Web服務(wù)器中負(fù)責(zé)渲染頁面的其他組件從所述Web上下文中獲得返回值,并將該返回值渲染為Web頁面并將該頁面在客戶端上進(jìn)行顯示,以完成Web訪問的過程。需要說明的是,本申請實(shí)施例中提到的Web組件,在MVC的設(shè)計(jì)模式中,因?yàn)槟軌蛱幚順I(yè)務(wù)請求的Web組件稱為控制器,而相應(yīng)的Web組件的方法為控制器函數(shù),以用戶的登錄行為為例,根據(jù)用戶的登錄頁面對應(yīng)的URL查找到相應(yīng)的控制器,控制器中對應(yīng)有響應(yīng)登錄行為的函數(shù)。因此,當(dāng)本申請實(shí)施例應(yīng)用于MVC的設(shè)計(jì)模式中吋,所述的Web組件即是控制器,而Web組件的方法則為控制器函數(shù),而控制器及控制器函數(shù)的處理流程則與本申請實(shí)施例中介紹的一致。在本申請實(shí)施例中,通過預(yù)先設(shè)置的形式參數(shù)聲明表示請求數(shù)據(jù)在Web上下文中存儲位置,并通過預(yù)先設(shè)置的返回參數(shù)聲明表示執(zhí)行Web組件的方法之后得到的返回值需要存儲于Web上下文中的存儲區(qū)域,這樣就能使得Web組件可以直接依據(jù)方法中的形式參數(shù)聲明及返回參數(shù)聲明直接操作屬于自己的相關(guān)數(shù)據(jù),同吋,Web組件也不需要再依賴實(shí)例變量主動獲取請求數(shù)據(jù)等,可以由Web服務(wù)器中的Web容器依據(jù)形式參數(shù)聲明為其注入請求數(shù)據(jù)作為輸入?yún)?shù),這樣也會減少Web服務(wù)器端的處理步驟,從而提升Web服務(wù)器處理客戶端請求的處理效率和處理性能。參見圖2,示出了本申請ー種實(shí)現(xiàn)Web訪問的方法具體實(shí)施例2的流程圖,可以包括以下步驟步驟201 =Web服務(wù)器根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。本步驟在實(shí)際應(yīng)用中可與實(shí)施例1相同,在此不再贅述。步驟202 =Web服務(wù)器解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名和形式參數(shù)注解屬性;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源,所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng)。需要說明的是,在預(yù)先設(shè)置方法的形式參數(shù)聲明以及返回參數(shù)聲明吋,可以采用現(xiàn)有技術(shù)的注解技木。而Web服務(wù)器解析形式參數(shù)聲明及后續(xù)的返回參數(shù)聲明吋,則可以采用反射技術(shù)進(jìn)行解析,以得到形式參數(shù)聲明中的形式參數(shù)注解名和形式參數(shù)注解屬性。 這里的形式參數(shù)注解名可以表示出請求數(shù)據(jù)的來源,即是請求數(shù)據(jù)在Web上下文中的存儲位置;而形式參數(shù)注解屬性則表示在數(shù)據(jù)來源中哪些數(shù)據(jù)項(xiàng)是請求數(shù)據(jù)。下面以面向?qū)ο缶幊陶Z言的Java語言為例,預(yù)先設(shè)置的Web組件的方法可為如下格式Public[ReturnAnnotation]ReturnType MethodName([Annotationl(annotationProperty;Typel Argument1,Annotation2(annotationProperty; Type2 Argument2,...AnnotationN(annotationProperty)TypeN ArgumentN])其中,MethodName是該業(yè)務(wù)方法的方法名,Annotationl是形式參數(shù)注解名,表示請求數(shù)據(jù)的來源;armotatiorfroperty是形式參數(shù)注解屬性,表示請求參數(shù)的數(shù)據(jù)項(xiàng)名稱 Argumentl是形式參數(shù)名,一般可以不參與綁定解析邏輯,但也可在注解屬性缺失吋,用來表示請求數(shù)據(jù)的數(shù)據(jù)項(xiàng)。需要說明的是,根據(jù)方法處理的業(yè)務(wù)不同,可以設(shè)計(jì)零個(gè)或多個(gè)形式參數(shù)來表示請求數(shù)據(jù)。例如,Argument2, ... , ArgumentN就表明方法有N個(gè)形式參數(shù)聲明。所述的Typel是形式參數(shù)聲明中還可以包括的形式參數(shù)類型,表示了請求數(shù)據(jù)需要滿足的數(shù)據(jù)類型。另外,所述ReturnAnnotation是方法的返回參數(shù)聲明中的返回參數(shù)注解,用來表示返回值在Web上下文存儲時(shí)的存儲位置;ReturnType是返回參數(shù)聲明中還可以包括的返回參數(shù)類型,即是表示返回值的數(shù)據(jù)類型。需要說明的是,上述偽代碼只是方法的形式參數(shù)聲明及返回參數(shù)聲明的ー個(gè)具體例子,在實(shí)際應(yīng)用過程中,只要形式參數(shù)聲明和返回參數(shù)聲明能夠示意出請求數(shù)據(jù),輸入綁定邏輯,及返回值,輸出綁定邏輯即可,其實(shí)現(xiàn)形式不限。
8
另外,在形式參數(shù)聲明或者返回參數(shù)聲明中部分或全部屬性可以缺省。例如可以沒有形式參數(shù)注解名,或沒有返回參數(shù)注解等。在上述情況下,Web服務(wù)器解析形式參數(shù)聲明或者返回參數(shù)聲明吋,則采用形式參數(shù)聲明或者返回參數(shù)聲明默認(rèn)的屬性。例如,如果沒有形式參數(shù)注解名,則默認(rèn)請求數(shù)據(jù)來源于客戶端本次提交的數(shù)據(jù)。具體應(yīng)用中可以使用方括號[...]表明形式參數(shù)聲明和返回參數(shù)聲明省略,即方法可以沒有形式參數(shù)聲明,也可以沒有返回?cái)?shù)據(jù)注解。步驟203 依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍。在實(shí)施例1中已經(jīng)介紹了 Web上下文中的各個(gè)范圍,那么本步驟即是根據(jù)形式參數(shù)注解名定位Web上下文中包括請求數(shù)據(jù)的ー個(gè)范圍。例如,如果形式參數(shù)注解名為 parameter",則表示請求數(shù)據(jù)來源于客戶端本次提交的數(shù)據(jù),此時(shí)會定位Web上下文中的 parameter范圍;而“Orequest”則表示請求數(shù)據(jù)來源于Web上下文中的request范圍, session”則表示請求數(shù)據(jù)來源于Web上下文中的session范圍。需要說明的是,如果形式參數(shù)聲明中沒有形式參數(shù)注解名,則采用該Web組件的方法預(yù)先定義的默認(rèn)數(shù)據(jù)來源信息。例如,形式參數(shù)聲明為“public boolean login (String username, String password) ”,其中沒有形式參數(shù)注解名,就可以默認(rèn)為 Web上下文的parameter范圍中的數(shù)據(jù),即用戶本次請求提交的數(shù)據(jù),數(shù)據(jù)項(xiàng)名稱分別未
し username,‘,しpassword"。因?yàn)檎埱髷?shù)據(jù)可以是Web上下文中不同范圍中的數(shù)據(jù),所以請求數(shù)據(jù)可以是本次請求提交的數(shù)據(jù),也可以是存儲在Web服務(wù)器中與本次請求相關(guān)的數(shù)據(jù)。步驟204 依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。假設(shè)預(yù)先設(shè)置“imame”為形式參數(shù)注解屬性,用來表示客戶端提交的HTTP參數(shù)名;而Mring是形式參數(shù)類型,表示是請求數(shù)據(jù)的類型需要是字符串;而以username作為形式參數(shù)名,表示登錄的用戶名;boolean表示方法的返回值,代表本次登錄是否成功。在形式參數(shù)注解屬性(〃 uname")省略的情況下,則用上述形式參數(shù)名username替代。則滿足上述條件的的形式參數(shù)聲明則如下所示puolic boolean 丄ogin(String username, string password)0在實(shí)際應(yīng)用中,假設(shè)形式參數(shù)注解名表示請求數(shù)據(jù)為客戶端本次提交的數(shù)據(jù),而 unname和passwd是存儲請求數(shù)據(jù)對應(yīng)的形式參數(shù)注解名,即表示客戶端本次提交的數(shù)據(jù)所存儲的數(shù)據(jù)項(xiàng)。因此用戶在瀏覽器上的登陸頁面中相應(yīng)的輸入框中輸入用戶名或密碼之后,輸入的用戶名和密碼就對應(yīng)著urmame和passwd等這些數(shù)據(jù)項(xiàng),即是用戶本次輸入的用戶名和密碼會存儲于unname和passwd的數(shù)據(jù)項(xiàng)。下面再舉ー個(gè)實(shí)際中的具體例子來說明。假設(shè)注冊方法(register)中存在形式參數(shù)聲明為“OParameterC' user") ”,則該形式參數(shù)聲明表示要從HTTP參數(shù)獲取名為 user的數(shù)據(jù)。這里的形式參數(shù)類型是her,其指示W(wǎng)eb服務(wù)器中的Web框架從Web上下文中獲取到的請求數(shù)據(jù)要符合her類的結(jié)構(gòu)類型。根據(jù)her的屬性構(gòu)成,要獲取到“ user” 的請求數(shù)據(jù),客戶端提交的HTTP參數(shù)名需包含注解的參數(shù)鍵值"user"及每個(gè)屬性名。在上述情況下,HTML表單代碼如下
<input name =” user, username “ ><input name =" user, password" ><input name =" user, email" >或等價(jià)的QueryString格式參數(shù),例如user, username = Jacky&user. password = 123456&user. email = jacky@abc. com。依據(jù)上述客戶端請求,本步驟從Web上下文中獲取到的請求數(shù)據(jù)就是Jacky, 123456 禾ロ jackyfebc. com。步驟205 以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法。步驟206:解析所述返回參數(shù)聲明獲取其中的返回參數(shù)注解;所述返回參數(shù)注解用于表示所述Web上下文的范圍。在調(diào)用Web組件方法之后獲得返回值,在將返回值存儲于Web上下文對應(yīng)的存儲區(qū)域之前,需要先獲取到返回參數(shù)聲明中的返回參數(shù)注解,該返回參數(shù)注解用于表示該返回值需要存儲的Web上下文的范圍。需要說明的是,所述返回參數(shù)聲明還可以包括返回參數(shù)類型,該返回參數(shù)類型可以表示出請求數(shù)據(jù)的類型,但是該返回參數(shù)類型對于實(shí)現(xiàn)本申請實(shí)施例來講并不是必須的。返回參數(shù)聲明也是在預(yù)先設(shè)置好的,例如publiciSessionC click Times" ) int click()其中,click為方法名,表示點(diǎn)擊操作;其中的@SeSSi0n(〃 click Times")是返回參數(shù)注解,表示將返回值存儲于Web上下文中的session范圍中的click Times變量名。 Int即是返回參數(shù)類型,即方法的返回值類型。需要說明的是,如果沒有返回參數(shù)聲明,如用“void”關(guān)鍵詞聲明,則表示該Web組件不用輸出數(shù)據(jù)給客戶端,則在直接執(zhí)行該Web組件的方法后,直接返回到客戶端。例如public void int click()步驟207 將所述Web組件方法調(diào)用完畢后的返回值存儲于所述Web上下文的范圍中。本步驟則在返回參數(shù)注解示意出的Web上下文的范圍存儲返回值。步驟208 將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行
MzjN O在本申請實(shí)施例中,Web服務(wù)器通過解析出Web組件的方法中包括的形式參數(shù)聲明和返回參數(shù)聲明,獲得形式參數(shù)注解名和形式參數(shù)注解屬性,以及返回參數(shù)注解和返回類型,就可以根據(jù)形式參數(shù)注解名和形式參數(shù)注解屬性從Web上下文中獲取請求數(shù)據(jù),也可以根據(jù)返回參數(shù)注解將Web組件的方法執(zhí)行后的返回值存儲于Web上下文中。采用本實(shí)施例的方法可以精簡Web服務(wù)器的處理流程,從而更好將功能設(shè)計(jì)或領(lǐng)域設(shè)計(jì)在代碼級別實(shí)現(xiàn),提高Web組件代碼的可讀性和維護(hù)性;并可以提高Web服務(wù)器的處理速度和處理性能。參見圖3,示出了本申請ー種實(shí)現(xiàn)Web訪問的方法具體實(shí)施例3的流程圖,可以包括以下步驟步驟301 根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。步驟302 解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名、形式參數(shù)注解屬性和形式參數(shù)類型;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源,所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng),所述形式參數(shù)類型表示請求數(shù)據(jù)需要滿足的數(shù)據(jù)類型。在本步驟中Web服務(wù)器除了解析形式參數(shù)聲明會得到形式參數(shù)注解名和形式參數(shù)注解屬性之外,還會解析得到形式參數(shù)類型,所述形式參數(shù)類型表示請求數(shù)據(jù)需要滿足的數(shù)據(jù)類型。例如,所述形式參數(shù)類型可以是int,表示整型數(shù)據(jù),或者string可以表示請求數(shù)據(jù)需要為字符串。步驟303 依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍。步驟304 依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。步驟305 判斷所述形式參數(shù)類型與所述請求數(shù)據(jù)的實(shí)際類型是否一致,如果是, 則進(jìn)入步驟307,如果否,則進(jìn)入步驟306。本實(shí)施例在得到請求數(shù)據(jù)之后,先對請求數(shù)據(jù)的實(shí)際數(shù)據(jù)類型進(jìn)行判斷,即是判斷請求數(shù)據(jù)的實(shí)際類型與形式參數(shù)類型是否一致。步驟306 將實(shí)際類型的請求數(shù)據(jù)轉(zhuǎn)換為所述形式參數(shù)類型的請求數(shù)據(jù),進(jìn)入步驟 307。當(dāng)請求數(shù)據(jù)的實(shí)際數(shù)據(jù)類型與形式參數(shù)類型不一致的時(shí)候,需要將實(shí)際類型的請求數(shù)據(jù)轉(zhuǎn)換成形式參數(shù)類型的請求數(shù)據(jù),并后續(xù)將轉(zhuǎn)換后的形式參數(shù)類型的請求數(shù)據(jù)作為最終的請求數(shù)據(jù)。此步驟成為“參數(shù)綁定”。步驟307 判斷與所述客戶端請求對應(yīng)的Web組件方法是否存在實(shí)例,如果是,則進(jìn)入步驟309,如果否,則進(jìn)入步驟308。其中,所述Web組件的方法每一次執(zhí)行的時(shí)候,都會產(chǎn)生ー個(gè)實(shí)例,而這個(gè)產(chǎn)生的實(shí)例所需執(zhí)行的步驟即是該方法所描述的步驟。因此如果查找到的Web組件方法已經(jīng)存在實(shí)例,說明該Web組件方法已經(jīng)被調(diào)用過,那么在本實(shí)施例中就無需再為該Web組件方法創(chuàng)建新的實(shí)例,直接調(diào)用已經(jīng)存在的實(shí)例的Web組件方法即可。通過以上描述可以看出,本實(shí)施例中創(chuàng)建的實(shí)例可以共享,即是在調(diào)用Web組件的方法吋,已經(jīng)創(chuàng)建過的Web組件的實(shí)例會由Web服務(wù)器進(jìn)行緩存,具體可以暫存在Web服務(wù)器的內(nèi)存單元中,下次有相同的功能請求吋,就無需再重新創(chuàng)建。其中,這里相同的功能請求指的是業(yè)務(wù)功能相同的客戶端請求,例如,不同客戶端發(fā)送的請求都表示“登錄”業(yè)務(wù), 那么雖然這些請求是不同客戶端發(fā)送的,也稱為相同的功能請求。而對于同一個(gè)客戶端來講,如果發(fā)送的兩個(gè)用戶請求分別表示的業(yè)務(wù)功能為“登錄”和“提交訂単”,則這兩個(gè)請求是不同的功能請求。步驟308 創(chuàng)建與所述客戶端請求對應(yīng)的Web組件實(shí)例,進(jìn)入步驟309。需要說明的是,如果沒有實(shí)例存在,說明該Web組件的方法還未被調(diào)用過,那么本次在調(diào)用該方法之前,還需要先創(chuàng)建與所述客戶端請求對應(yīng)的Web組件實(shí)例,即是屬于該Web組件的方法的實(shí)例。步驟309 以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法。最后再以請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法,此處的請求數(shù)據(jù)可以是轉(zhuǎn)換后的形式參數(shù)類型的請求數(shù)據(jù),也可以是實(shí)際查找到的Web上下文中的數(shù)據(jù)項(xiàng)。步驟310 依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中。Web組件的方法調(diào)用完畢之后,就會自動生成該方法的返回值,而在本實(shí)施例中, 這個(gè)返回值即是對于請求數(shù)據(jù)的響應(yīng)數(shù)據(jù)。那么再依據(jù)Web組件方法中預(yù)先設(shè)置好的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中對應(yīng)的范圍。步驟311 將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行
iU>/J\ οWeb服務(wù)器再將Web上下文中的返回值渲染為Web頁面,并在所述客戶端上進(jìn)行顯
7J\ ο在本實(shí)施例中,可以通過查找Web服務(wù)器中是否已存儲相應(yīng)的Web組件的實(shí)例進(jìn)一步提升在處理相同客戶端請求時(shí)的Web服務(wù)器的處理效率。需要說明的是,本申請中介紹的實(shí)施例中所描述的Web組件在應(yīng)用于MVC框架中時(shí)為控制器,而Web組件的方法則對應(yīng)為控制器函數(shù),在實(shí)際應(yīng)用中互相參見即可。對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本申請,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本申請所必須的。與上述本申請ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例1所提供的方法相對應(yīng),參見圖4, 本申請還提供了 ー種實(shí)現(xiàn)Web訪問的Web服務(wù)器實(shí)施例1,在本實(shí)施例中,該Web服務(wù)器具體可以包括查找單元401,用于根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。獲取單元402,用于按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù)。調(diào)用方法単元403,用于以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述 Web組件方法,完成輸入綁定。存儲單元404,用于依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中,完成輸出綁定。顯示單元405,用于將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。本實(shí)施例中,通過預(yù)先設(shè)置的形式參數(shù)聲明表示請求數(shù)據(jù)在Web上下文中存儲位置,并通過預(yù)先設(shè)置的返回參數(shù)聲明表示執(zhí)行Web組件的方法之后得到的返回值需要存儲于Web上下文中的存儲區(qū)域,這樣就能使得Web組件可以直接依據(jù)方法中的形式參數(shù)聲明及返回參數(shù)聲明直接操作屬于自己的相關(guān)數(shù)據(jù),同吋,Web組件也不需要再依賴實(shí)例變量主動獲取請求數(shù)據(jù)等,可以由Web服務(wù)器中的Web容器依據(jù)形式參數(shù)聲明為其注入請求數(shù)據(jù)作為輸入?yún)?shù),這樣也會減少Web服務(wù)器端的處理步驟和控制器實(shí)例的創(chuàng)建,從而提升Web 服務(wù)器處理客戶端請求的處理效率和處理性能。與上述本申請ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例2所提供的方法相對應(yīng),參見圖5, 本申請還提供了一種實(shí)現(xiàn)Web訪問的Web服務(wù)器優(yōu)選實(shí)施例2,在本實(shí)施例中,該Web服務(wù)器具體可以包括查找單元401,用于根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。在本實(shí)施例中,所述獲取単元402具體可以包括第一解析模塊501,用于解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名和形式參數(shù)注解屬性;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源, 所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng)。第一查找模塊502,用于依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍。第二查找模塊503,用于依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。調(diào)用方法単元403,用于以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述 Web組件方法;在本實(shí)施例中,所述存儲単元404具體可以包括第二解析模塊504,用于解析所述返回參數(shù)聲明獲取其中的返回參數(shù)注解;所述返回參數(shù)注解用于表示所述Web上下文的范圍;存儲模塊505,用于將所述Web組件方法調(diào)用完畢后的返回值存儲于所述Web上下文的范圍中。顯示單元405,用于將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。在本實(shí)施例中,Web服務(wù)器通過解析出Web組件的方法中包括的形式參數(shù)聲明和返回參數(shù)聲明,獲得形式參數(shù)注解名和形式參數(shù)注解屬性,以及返回參數(shù)注解,就可以根據(jù)形式參數(shù)注解名和形式參數(shù)注解屬性從Web上下文中獲取請求數(shù)據(jù),也可以根據(jù)返回參數(shù)注解將Web組件的方法執(zhí)行后的返回值存儲于Web上下文中。采用本實(shí)施例的方法可以將功能設(shè)計(jì)直接體現(xiàn)在Web組件的程序設(shè)計(jì)上,提高代碼的語義性和可讀性;并可以精簡Web 服務(wù)器的處理流程,從而可以提高Web服務(wù)器的處理速度和處理性能。與上述本申請ー種實(shí)現(xiàn)Web訪問的方法實(shí)施例3相對應(yīng),本申請還提供了 ー種實(shí)現(xiàn)Web訪問Web服務(wù)器的實(shí)施例3,在本實(shí)施例中,所述Web服務(wù)器具體可以包括查找單元401,用于根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法。第一解析模塊501,用于解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名和形式參數(shù)注解屬性;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源, 所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng)。第一查找模塊502,用于依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍。第二查找模塊503,用于依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。判斷模塊601,用于判斷所述形式參數(shù)類型與所述請求數(shù)據(jù)的實(shí)際類型是否一致; 如果是,則觸發(fā)所述調(diào)用方法単元。轉(zhuǎn)換模塊602,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),將實(shí)際類型的請求數(shù)據(jù)轉(zhuǎn)換為所述形式參數(shù)類型的請求數(shù)據(jù)。調(diào)用方法単元403,用于以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述 Web組件方法;存儲單元404,用于依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中;判斷単元603,用于判斷與所述客戶端請求對應(yīng)的Web組件方法是否存在實(shí)例;如果是,則直接調(diào)用所述Web組件實(shí)例的方法;創(chuàng)建實(shí)例単元604,用于當(dāng)所述判斷単元的結(jié)果為否時(shí),創(chuàng)建與所述客戶端請求對應(yīng)的Web組件實(shí)例。緩存單元605,用于將所述Web組件實(shí)例進(jìn)行緩存,以便于下一次接收到相同的客戶端請求吋,直接調(diào)用所述Web組件實(shí)例的Web組件方法。顯示單元405,用于將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。 對于Web服務(wù)器類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另ー個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括ー個(gè)......”限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。為了描述的方便,描述以上裝置時(shí)以功能分為各種単元分別描述。當(dāng)然,在實(shí)施本申請時(shí)可以把各単元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)。基于這樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),Web服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。以上對本申請所提供的一種實(shí)現(xiàn)Web訪問的方法及Web服務(wù)器進(jìn)行了詳細(xì)介紹, 本文中應(yīng)用了具體個(gè)例對本申請的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
權(quán)利要求
1.一種實(shí)現(xiàn)Web訪問的方法,其特征在干,包括根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法;按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù);以所述請求數(shù)據(jù),作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法; 依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中;將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯示。
2.根據(jù)權(quán)利要求1所述的方法,其特征在干,所述按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù),具體包括解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名和形式參數(shù)注解屬性;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源,所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng);依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍; 依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在干,所述形式參數(shù)聲明還包括形式參數(shù)類型,則所述依據(jù)所述形式參數(shù)名從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的請求數(shù)據(jù)之后,還包括判斷所述形式參數(shù)類型與所述請求數(shù)據(jù)的實(shí)際類型是否一致;如果是,則執(zhí)行所述調(diào)用所述Web組件方法的步驟,如果否,則將實(shí)際類型的請求數(shù)據(jù)按規(guī)則轉(zhuǎn)換為所述形式參數(shù)類型要求的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在干,所述依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中,具體包括解析所述返回參數(shù)聲明獲取其中的返回參數(shù)注解;所述返回參數(shù)注解用于表示所述 Web上下文的范圍;將所述Web組件方法調(diào)用完畢后的返回值存儲于所述Web上下文的范圍中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在干,所述調(diào)用所述Web組件方法之前,還包括判斷與所述客戶端請求對應(yīng)的Web組件方法是否存在實(shí)例;如果是,則直接調(diào)用所述 Web組件實(shí)例的方法,如果否,則創(chuàng)建與所述客戶端請求對應(yīng)的Web組件實(shí)例。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括將所述Web組件實(shí)例進(jìn)行緩存,以便于下一次接收到相同的客戶端請求吋,直接調(diào)用所述Web組件實(shí)例的Web組件方法。
7.—種Web服務(wù)器,其特征在干,所述Web服務(wù)器包括查找單元,用于根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法; 獲取單元,用于按照所述Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與所述客戶端請求對應(yīng)的請求數(shù)據(jù);調(diào)用方法単元,用于以所述請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用所述Web組件方法;存儲單元,用于依據(jù)所述Web組件方法中的返回參數(shù)聲明,將所述Web組件方法調(diào)用完畢后的返回值存儲至所述Web上下文中;顯示單元,用于將所述Web上下文中的返回值渲染為Web頁面并在所述客戶端上進(jìn)行顯不。
8.根據(jù)權(quán)利要求7所述的Web服務(wù)器,其特征在干,所述獲取単元具體包括第一解析模塊,用于解析所述形式參數(shù)聲明以獲得其中的形式參數(shù)注解名和形式參數(shù)注解屬性;所述形式參數(shù)注解名用于表示請求數(shù)據(jù)在Web上下文中的數(shù)據(jù)來源,所述形式參數(shù)注解屬性用于表示請求數(shù)據(jù)在所述數(shù)據(jù)來源中的數(shù)據(jù)項(xiàng);第一查找模塊,用于依據(jù)所述形式參數(shù)注解名查找到所述Web上下文中包括請求數(shù)據(jù)的數(shù)據(jù)范圍;第二查找模塊,用于依據(jù)所述形式參數(shù)注解屬性從所述數(shù)據(jù)范圍中查找到與客戶端請求對應(yīng)的數(shù)據(jù)項(xiàng)。
9.根據(jù)權(quán)利要求8所述的Web服務(wù)器,其特征在干,所述獲取單元還包括判斷模塊,用于判斷所述形式參數(shù)類型與所述請求數(shù)據(jù)的實(shí)際類型是否一致;如果是, 則觸發(fā)所述調(diào)用方法単元;轉(zhuǎn)換模塊,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),將實(shí)際類型的請求數(shù)據(jù)轉(zhuǎn)換為所述形式參數(shù)類型的請求數(shù)據(jù)。
10.根據(jù)權(quán)利要求7所述的Web服務(wù)器,其特征在干,所述存儲単元具體包括第二解析模塊,用于解析所述返回參數(shù)聲明獲取其中的返回參數(shù)注解;所述返回參數(shù)注解用于表示所述Web上下文的范圍;存儲模塊,用于將所述Web組件方法調(diào)用完畢后的返回值存儲于所述Web上下文的范圍中。
11.根據(jù)權(quán)利要求7所述的Web服務(wù)器,其特征在于,還包括判斷単元,用于判斷與所述客戶端請求對應(yīng)的Web組件方法是否存在實(shí)例;如果是,則直接調(diào)用所述Web組件實(shí)例的方法;創(chuàng)建實(shí)例単元,用于當(dāng)所述判斷単元的結(jié)果為否時(shí),創(chuàng)建與所述客戶端請求對應(yīng)的Web 組件實(shí)例。
12.根據(jù)權(quán)利要求11所述的Web服務(wù)器,其特征在于,還包括緩存單元,用于將所述Web組件實(shí)例進(jìn)行緩存,以便于下一次接收到相同的客戶端請求吋,直接調(diào)用所述Web組件實(shí)例的Web組件方法。
全文摘要
本申請?zhí)峁┝艘环N實(shí)現(xiàn)Web訪問的方法和Web服務(wù)器,所述方法包括根據(jù)客戶端請求查找相應(yīng)的Web組件及Web組件的方法;按照Web組件方法中的形式參數(shù)聲明從Web上下文中獲取與客戶端請求對應(yīng)的請求數(shù)據(jù);以請求數(shù)據(jù)作為Web組件方法的輸入?yún)?shù),調(diào)用Web組件方法;依據(jù)Web組件方法中的返回參數(shù)聲明,將Web組件方法調(diào)用完畢后的返回值存儲至Web上下文中;將Web上下文中的返回值渲染為Web頁面并在客戶端上進(jìn)行顯示。本申請實(shí)施例公開的方法和Web服務(wù)器,可以解決因?yàn)闊o法很好的區(qū)別Web組件實(shí)例變量中的請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)以及Web組件的方法中沒有對應(yīng)的參數(shù)說明,導(dǎo)致Web組件無法準(zhǔn)確表達(dá)設(shè)計(jì)語義的問題,無法直接體現(xiàn)功能設(shè)計(jì)和領(lǐng)域設(shè)計(jì),以及Web服務(wù)器處理效率和處理性能下降的問題。
文檔編號G06F17/30GK102567400SQ201010617580
公開日2012年7月11日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者何坤 申請人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1