專利名稱:一種更換界面主題的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及web應(yīng)用領(lǐng)域,特別是涉及一種更換界面主題的方法和系統(tǒng)。
背景技術(shù):
Web (world wide web )是一種典型的分布式應(yīng)用架構(gòu)。Web應(yīng)用中的每 一次信息交換都要涉及到客戶端和服務(wù)端兩個層面。作為互聯(lián)網(wǎng)(Internet )上 的一種應(yīng)用架構(gòu),Web的首要任務(wù)就是向人們提供信息和信息服務(wù)。從技術(shù)層 面看,Web架構(gòu)的精華有三處用超文本技術(shù)(HTML)實現(xiàn)信息與信息的連 接;用統(tǒng)一資源定位技術(shù)(URI)實現(xiàn)全球信息的精確定位;用新的應(yīng)用層協(xié) 議(HTTP)實現(xiàn)分布式的信息共享。這三個特點無一不與信息的分發(fā)、獲取 和利用有關(guān)。
Web客戶端的主要任務(wù)M現(xiàn)信息內(nèi)容,最初的HTML語言只能在瀏覽 器中展現(xiàn)靜態(tài)的文本或圖像信息,這滿足不了人們對信息豐富性和多樣性的強 烈需求,因此,由靜態(tài)技術(shù)向動態(tài)技術(shù)的轉(zhuǎn)變成為了 Web客戶端技術(shù)演進(jìn)的 必須階,殳。
隨著web技術(shù)的發(fā)展和普及,用戶有了個性化的需求,web界面的主題風(fēng) 格不再是一成不變,因此,大部分web系統(tǒng)都提供了界面主題管理的功能。 真正讓web站點的界面主題豐富多彩、動感無限的是層疊樣式表(cascading stylesheets, CSS)技術(shù),界面主題管理功能的通常實現(xiàn)方式是為一個web應(yīng) 用系統(tǒng)的界面定義多套CSS,并在系統(tǒng)中編寫代碼來控制切換CSS,從而實現(xiàn) 界面主題的更換。采用CSS技術(shù),可以有效的對頁面的布局、字體、顏色、 背景和其他效果進(jìn)行控制,大大提高了開發(fā)者對信息展現(xiàn)格式的控制能力。
雖然采用CSS技術(shù)能實現(xiàn)界面主題的豐富多彩,提高用戶的體驗感覺, 但是,如果需要改變界面主題、或者頁數(shù)不同的主題外觀和格式,都需要對相 應(yīng)的代碼進(jìn)行修改。 一方面,需要在web應(yīng)用系統(tǒng)中編寫一定的代碼來實現(xiàn) 界面主題管理的功能,通過這種方式來實現(xiàn),如果每做一個新的項目,便要為 這個項目編寫界面主題管理的代碼,不能方便的進(jìn)行維護(hù)。另一方面,通過 CSS實現(xiàn)界面主題管理的功能,通常只支持有限的幾個主題,如果系統(tǒng)要增加
一種主題風(fēng)格,則需要更改代碼和重新部署應(yīng)用,所需工作量較大。
因此迫切需要對web應(yīng)用中的界面主題管理進(jìn)行改進(jìn),簡化web應(yīng)用中 實現(xiàn)更換界面主題的復(fù)雜度、降低更換成本、并且能提供高度的可擴(kuò)展能力。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種更換界面主題的方法和系統(tǒng),能夠 簡化web應(yīng)用中實現(xiàn)更換界面主題的復(fù)雜度、降低更換成本、并且能才是供高 度的可擴(kuò)展能力。
為了解決上述問題,本發(fā)明公開了一種更換界面主題的方法,包括
接受客戶端的請求;
根據(jù)所述客戶端的請求,解析出客戶端請求裝載的界面主題資源; 定位所述請求的界面主題資源,確定所述請求裝載的界面主題資源的類路
徑;
裝載所述確定的界面主題資源。
進(jìn)一步,在所述裝載確定的界面主題資源步驟后還包括 將所述裝載的界面主題資源以流的方式傳輸至所述請求的客戶端,在客戶
端顯示所述更換后的界面主題。
進(jìn)一步,組織界面主題資源,打包存儲所述界面主題資源至應(yīng)用服務(wù)系統(tǒng)
的類路徑中。
優(yōu)選的,單獨打包所述界面主題資源,獨立存放至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
進(jìn)一步,在所述定位請求的界面主題資源步驟后還包括 判斷是否存在所述請求的界面主題資源,如果不存在所述請求的界面主題 資源則裝載默i^的界面主題資源,存在則進(jìn)入下一步。 本發(fā)明還公開了一種更換界面主題的系統(tǒng),包括 接受請求單元,用于接受客戶端的請求;
解析單元,用于根據(jù)客戶端的請求,解析出客戶端請求裝載的界面主題資
源;
定位單元,用于定位所述請求的界面主題資源,確定所述請求裝載的界面 主題資源的類路徑;
裝載單元,用于裝載所述確定的界面主題資源。
進(jìn)一步,還包括傳輸單元,用于將所述裝載的界面主題資源以流的方式傳 輸至所述請求的客戶端,在客戶端顯示所述更換后的界面主題。
進(jìn)一步,還包括資源組織單元,用于組織界面主題資源,打包存儲所述界 面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
優(yōu)選的,所述資源組織單元單獨打包界面主題資源,獨立存放所述界面主 題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
進(jìn)一步,還包括判斷單元,用于判斷是否存在所述請求的界面主題資源, 如果不存在所述請求的界面主題資源則調(diào)用裝載單元裝載默認(rèn)的界面主題資 源,存在則調(diào)用裝載單元裝載所述確定的界面主題資源。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點
本發(fā)明將界面主題管理的功能從web應(yīng)用系統(tǒng)中剝離出來,形成獨立的 部分,并可用于任何基于web應(yīng)用系統(tǒng)而無須編寫代碼,簡化web應(yīng)用開發(fā) 的復(fù)雜度、降低了更換界面主題的成本。本發(fā)明所實現(xiàn)的可裝配界面主題的管 理,web應(yīng)用系統(tǒng)不需要修改代碼也不需要重新部署即可增加新的界面主題資 源,可增加任意多的界面主題資源,極大提高了界面主題管理的可擴(kuò)展能力。 并且界面主題的資源文件是獨立的,可以不部署在web應(yīng)用系統(tǒng)中,減輕系 統(tǒng)的維護(hù)負(fù)擔(dān)。
圖l是本發(fā)明實施例一種更換界面主題的方法流程圖2是本發(fā)明另 一實施例一種更換界面主題的方法流程圖3是本發(fā)明實施例一種更換界面主題的系統(tǒng)的結(jié)構(gòu)框圖4是本發(fā)明另 一實施例一種更換界面主題的系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式
本發(fā)明的理論^f出是基于javaee的servlet規(guī)范和java語言的資源裝載方 式。本發(fā)明通過使用servlet提供的標(biāo)準(zhǔn)功能和java語言提供的資源裝載功能, 實現(xiàn)動態(tài)的界面主題的裝載。
以了更好的理解本發(fā)明,下面對javaee的servlet規(guī)范和java語言的資源
裝載方式進(jìn)行介紹。Servlet是使用Java Servlet應(yīng)用程序設(shè)計接口 (API)及 相關(guān)類和方法的Java程序。除了 Java Servlet API, Servlet還可以使用用以 擴(kuò)展和添加到API的Java類軟件包。Servlet在啟用Java的Web服務(wù)器 上或應(yīng)用服務(wù)器上運行并擴(kuò)展了該服務(wù)器的能力。Java servlet對于Web服務(wù) 器就好象Java applet對于Web瀏覽器。Servlet裝入Web服務(wù)器并在Web服務(wù) 器內(nèi)執(zhí)行,而applet裝入Web瀏覽器并在Web瀏覽器內(nèi)執(zhí)行。Java Servlet API 定義了 一個servlet和Java服務(wù)器之間的一個標(biāo)準(zhǔn)接口 ,這使得Servlets具有 跨服務(wù)器平臺的特性。
Servlet通過創(chuàng)建一個框架來擴(kuò)展服務(wù)器的能力,以提供在Web上進(jìn)行 請求和響應(yīng)服務(wù)。當(dāng)客戶端發(fā)送請求至服務(wù)器時,服務(wù)器可以將請求信息發(fā)送 給Servlet,并讓Servlet建立起月l務(wù)器返回給客戶端的響應(yīng)。當(dāng)啟動Web月l 務(wù)器或客戶端第一次請求服務(wù)時,可以自動裝入Servlet。裝入后,Servlet繼 續(xù)運行直到其它客戶端發(fā)出請求。Servlet的功能涉及范圍很廣。通常,Servlet 可完成如下功能
1、 創(chuàng)建并返回一個包含基于客戶請求性質(zhì)的動態(tài)內(nèi)容的完整的HTML 頁面。
2、 創(chuàng)建可嵌入到現(xiàn)有HTML頁面中的一部分HTML頁面(HTML片段)。
3、 與其它服務(wù)器資源(包括數(shù)據(jù)庫和基于Java的應(yīng)用程序)進(jìn)行通信。
4、 用多個客戶端處理連接,接收多個客戶端的輸入,并將結(jié)果廣播到多 個客戶端上。例如,Servlet可以是多參與者的游戲服務(wù)器。
5、 當(dāng)允許在單連接方式下傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務(wù)器至 applet的新連接,并將該連接保持在打開狀態(tài)。當(dāng)允許客戶端和服務(wù)器簡單、 高效地執(zhí)行會話的情況下,applet也可以啟動客戶瀏覽器和服務(wù)器之間的連接。 可以通過定制協(xié)議或標(biāo)準(zhǔn)(如HOP)進(jìn)行通信。
6、 對特殊的處理采用MIME類型過濾數(shù)據(jù),例如圖像轉(zhuǎn)換和服務(wù)器端 包括(SSI )。
7、 將定制的處理提供給所有服務(wù)器的標(biāo)準(zhǔn)例行程序。例如,Servlet可以 修改如何認(rèn)證用戶。
類裝栽是java語言提供的最強大的機制之一, 一個類代表要執(zhí)行的代碼, 而數(shù)據(jù)則表示其相關(guān)狀態(tài)。狀態(tài)時常改變,而代碼則不會。將一個特定的狀態(tài) 與一個類相對應(yīng)起來,即將一個類事例化。盡管相同的類對應(yīng)的實例其狀態(tài)千 差萬別,但其本質(zhì)都對應(yīng)著同一段代碼。 一旦一個類被載入Java虛擬才幾(Java Virtual Machine, JVM)中,同一個類就不會被再次載入了 。應(yīng)用服務(wù)器自身 的啟動需要裝載很多類文件(class),部署在應(yīng)用服務(wù)器上的應(yīng)用啟動時也需 要裝載應(yīng)用自身的類文件。JAVA的類裝載機制是在同一個JVM中,按類路 徑的層次和順序裝載類文件,并且同一個類裝載器(classloader)對同一個類 只能夠裝載一次,classloader存在父子關(guān)系,同 一個類文件可以^皮不同的 classloader裝載, 一個類可以被多個class - loader裝載。應(yīng)用服務(wù)器運行時, 應(yīng)用的某個類可以被部署在多個地方。
Java虛擬機(JVM)的類裝載就是將包含在類文件中的字節(jié)碼裝栽到JVM 中,但是類裝載器也不是原封不動的裝載到JVM,它是將類(.class)文件中 的內(nèi)容轉(zhuǎn)換成JVM使用的類字節(jié)碼。通過類裝載器裝載到JVM中的字節(jié)碼數(shù) 據(jù),就成了可執(zhí)行的代碼。類裝載器把類裝入JVM中,要經(jīng)過三個步驟完成 裝載,鏈接和初始化。
類裝載器本身也是一個java類,類庫中提供了一個java.lang.classloader 做為類的裝載器基類,也就是說真正的類裝載器都必須是classloader的子類。 Class類中定義了 一個getclassloader方法,用于返回它所描述的類的類裝載器 對象,這個返回對象的類型就是classloader。 一個java應(yīng)用持續(xù)使用兩種類型 的類裝載器根裝載器(bootstrap )和用戶定義的裝載器(user-defined ),所 謂根裝載器就是JVM中內(nèi)嵌的一個類,它是用特定的操作系統(tǒng)的本地代碼實 現(xiàn)的,它不用專門的類裝載器去進(jìn)行裝載。它負(fù)責(zé)裝載Java核心包中的類文 件中的類。對一個已經(jīng)凈皮父級類裝載器裝載的類來"i兌。JVM默認(rèn)也〗吏用這個 父級類裝載器去裝載它所調(diào)用的其他類,由于父級類裝載器不會委托子級類裝 載器去裝載類,所以,在一般情況下, 一個已被父級類裝載器裝載的類無法調(diào) 用那些只能被子級類裝載器發(fā)現(xiàn)和裝載的其他的類。
本發(fā)明通過使用servlet提供的標(biāo)準(zhǔn)功能和Java語言提供的資源裝載功能, 實現(xiàn)動態(tài)的界面主題資源的裝載。
本發(fā)明所述的界面主題管理是一個可獨立工作的、可嵌入其他應(yīng)用的部 分。如果要在一個系統(tǒng)中使用本發(fā)明的界面主題管理,只需將界面主題資源文 件放在系統(tǒng)的類路徑中即可。界面主題裝載器根據(jù)來自客戶端的界面主題資源 的請求,定位指定的界面主題資源。對于應(yīng)用系統(tǒng)來說,使用本發(fā)明所述方案, 則所有界面主題管理相關(guān)的功能都可以通過本發(fā)明的界面主題管理來實現(xiàn),因 此不需要編寫界面主題管理的任何代碼。
進(jìn)一步,本發(fā)明中的界面主題資源文件,是按照一定的目錄形式組織的, 每個界面主題或主題相關(guān)的文件,存放在單獨的文件夾中,如果需要增加一種 新的界面主題,只需再建立一個類似的文件夾即可,程序代碼無需做任何改變, 在傳統(tǒng)的界面主題資源管理模式下,如果需要新增界面主題,勢必要引起程序 代碼的改動。
根據(jù)請求定位界面主題資源時,是在整個類路徑中定位的,該點不同于傳 統(tǒng)的資源管理模式,傳統(tǒng)的資源管理模式只是局限在應(yīng)用系統(tǒng)自身的目錄中定 位。而本明則可以將任何位置的文件或文件夾添加到類路徑中。因此,對于應(yīng) 用系統(tǒng),將系統(tǒng)所需的界面主題資源文件放在類路徑中即可,界面主題管理即 會定位并裝載它,并不一定要存放在應(yīng)用系統(tǒng)的目錄下。
進(jìn)一步,由于界面主題管理在定位界面主題資源時,是在類路徑中定位, 這種機制決定了界面主題資源文件是可以分開成多個獨立文件的。比如一個應(yīng)
用系統(tǒng)提供三種界面主題a、 b、 c,則可以把界面主題a所需要的所有資源文 件打包成一個獨立的,界面主題b所需的資源文件打包成一個,界面主題c所 需的所有資源文件打包為一個,分別是a.jar、 b.jar和c.jar,將這三個文件都加 到j(luò)ava的類路徑中,因此,對于界面主題管理來說,則可以查找到全部這三 種界面主題的資源文件了 。
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。
參照圖1,示出了本發(fā)明實施例一種更換界面主題的方法流程圖,包括步
驟
步驟IOI、接受客戶端的請求。
當(dāng)客戶端要更換界面主題時,則向服務(wù)器發(fā)出更換界面主題的請求,所述
服務(wù)器接收所述客戶端更換界面主題的請求。
步驟102、根據(jù)所述客戶端的請求,解析出客戶端請求裝載的界面主題資源。
月良務(wù)器端接收客戶端的統(tǒng)一資源定位符(Uniform Resource Locator, URL ) 根據(jù)所述URL解析出客戶端請求裝載的界面主題。
所述URL是web頁的;也址,URL由兩個主要的部分構(gòu)成協(xié)議(Protocol ) 和目的地(Destination )。協(xié)議部分表示面對的是何種類型的Internet資源。web 中最常見的協(xié)議是http,它表示從Web中取回的是HTML文檔。其他協(xié)議還 有g(shù)opher、 ftp和telnet等。目的地可以是某個文件名、目錄名或者某臺計算機 的名稱。通過一個URL能讓瀏覽器知道HTML文檔的正確位置以及文件名是 什么。URL的作用是告訴瀏覽器使用什么協(xié)議,以及在網(wǎng)絡(luò)的什么地方去尋 找下載的文件。URL用來定義Web網(wǎng)頁的地址。根據(jù)客戶端的URL就可以解 析出客戶端所要請求的資源地址以及所要請求的資源名稱。
步驟103、定位客戶端請求的界面主題資源,確定所述請求裝栽的界面主 題資源的類路徑。
本發(fā)明所述的界面主題資源是按照一定的目錄形式組織的,每個界面主題 或與主題相關(guān)的文件,都存;^文在一個單獨的文件夾中,當(dāng)需要增加一種新的界 面主題時,只需再建立一個類似的文件夾即可。在本發(fā)明中,可以將任何位置 的文件或文件夾存放于類路徑中,因此,對于應(yīng)用系統(tǒng),將所需的界面主題資 源文件存放在類路徑中即可。服務(wù)器端在根據(jù)客戶端的請求定位界面主題資源 時,是在整個類路徑中定位的,不需要一定將資源文件存放在應(yīng)用系統(tǒng)的目錄 下。
進(jìn)一步,由于在定位界面主題資源時,是在類路徑中定位的,這種機制決 定了界面主題資源可以被分開成多個獨立文件。例如, 一個應(yīng)用系統(tǒng)提供三種 界面主題a、 b、 c,則可以把界面主題a所需要的所有資源文件打包成一個獨 立的,界面主題b所需要的資源文件打包成一個獨立的,界面主題c所需的所 有資源文件打包成一個獨立的,分別是a.jar、 b.jar和c.jar,將這三個文件都存 放到類路徑中,因此,對于界面主題管理來說,就可以查找到全部這三種界面 主題的資源文件了。
步驟104、裝載所述確定的界面主題資源。
經(jīng)過步驟103的定位確定后,即可知道客戶端請求的界面主題資源的類路
徑,通過類裝載功能將所述界面主題資源類文件從類路徑中裝載,實現(xiàn)界面主 題的更換。
類裝載是java語言提供的最強大的機制之一, 一個類代表要執(zhí)行的代碼, 而數(shù)據(jù)則表示其相關(guān)狀態(tài)。狀態(tài)時常改變,而代碼則不會。將一個特定的狀態(tài) 與一個類相對應(yīng)起來,即將一個類事例化。盡管相同的類對應(yīng)的實例其狀態(tài)千 差萬別,但其本質(zhì)都對應(yīng)著同一段代碼。 一旦一個類被載入Java虛擬機(Java Virtual Machine, JVM)中,同一個類就不會被再次載入了 。應(yīng)用服務(wù)器自身 的啟動需要裝載很多類文件(class),部署在應(yīng)用服務(wù)器上的應(yīng)用啟動時也需 要裝載應(yīng)用自身的類文件。JAVA的類裝載機制是在同一個JVM中,按類路 徑的層次和順序裝載類文件,并且同一個類裝載器(classloader)對同一個類 只能夠裝載一次,classloader存在父子關(guān)系,同 一個類文件可以-陂不同的 classloader裝載, 一個類可以;故多個class - loader裝載。應(yīng)用服務(wù)器運4亍時, 應(yīng)用的某個類可以被部署在多個地方。
中,但是類裝載器也不是原封不動的裝載到JVM,它是將類(.class)文件中 的內(nèi)容轉(zhuǎn)換成JVM使用的類字節(jié)碼。通過類裝載器裝載到JVM中的字節(jié)碼數(shù) 據(jù),就成了可執(zhí)行的代碼。類裝載器把類裝入JVM中,要經(jīng)過三個步驟完成 裝載,鏈接和初始化。
進(jìn)一步,還包括步驟105、將所述裝載的界面主題資源以流的方式傳輸至 所述請求的客戶端,在客戶端顯示更換后的界面主題。
根據(jù)客戶端的URL,將所述更換后的界面主題傳輸至所述請求更換界面 主題的客戶端。所述傳輸?shù)姆绞娇梢允嵌M(jìn)制流的方式,也可以是其他方式, 本發(fā)明并不對此進(jìn)行限定,本發(fā)明優(yōu)選采用二進(jìn)制流的方式傳輸所述更換后的 界面主題至客戶端。
通過前面的描述可知,本發(fā)明的界面主題資源文件可以單獨打包,單獨存 放在類路徑中。在本發(fā)明中,采用了應(yīng)用服務(wù)器的session機制,從而實現(xiàn)對 每一個客戶端,都有一個獨立的界面主題資源存儲區(qū)域,互相獨立。將每個客 戶端所請求的界面主題資源存放在每個客戶的session之中,從而實現(xiàn)每個客 戶端可以選擇各自的界面主題資源,互不干涉。
通過CSS實現(xiàn)的界面主題管理,需要在web應(yīng)用系統(tǒng)中編寫一定的代碼 來實現(xiàn)界面主題管理的功能,每做一個新的項目時,便要為這個項目編寫界面 管理的代碼,不能方便的進(jìn)行維護(hù)。另一方面,通過該種方式的實現(xiàn),通常只 支持有限的幾個界面主題,如果系統(tǒng)要增加一種界面主題,也需要更改代碼以 重新部署應(yīng)用。通過本發(fā)明所述技術(shù)方案實現(xiàn)界面主題管理,將界面主題管理 的功能從web應(yīng)用系統(tǒng)中剝離出來,形成一個獨立的功能,并可用于任何基 于web的應(yīng)用系統(tǒng)而無須編寫代碼,從而簡化web開發(fā)的復(fù)雜度。通過本發(fā) 明所述的技術(shù)方案,web應(yīng)用系統(tǒng)不需要修改代碼也不需要重新部署即可增加 一種新的界面主題,極大的提高了界面主題管理的可擴(kuò)展能力。
參照圖2,示出了本發(fā)明另一實施例一種更換界面主題的方法的流程圖, 包括步驟
步驟201、接受客戶端的請求。
當(dāng)客戶端要更換界面主題時,則向服務(wù)器發(fā)出更換界面主題的請求,所述 服務(wù)器接收所述客戶端更換界面主題的請求。
步驟202、根據(jù)所述客戶端的請求,解析出客戶端請求裝載的界面主題資源。
月良務(wù)器端接收客戶端的統(tǒng)一資源定位符(Uniform Resource Locator, URL ) 根據(jù)所述URL解析出客戶端請求裝載的界面主題。
步驟203、定位客戶端請求的界面主題資源,確定所述請求裝載的界面主 題資源的類路徑。
本發(fā)明所述的界面主題資源是按照一定的目錄形式組織的,每個界面主題 或與主題相關(guān)的文件,都存放在一個單獨的文件夾中,當(dāng)需要增加一種新的界 面主題時,只需再建立一個類似的文件夾即可。在本發(fā)明中,可以將任何位置 的文件或文件夾存放于類路徑中,因此,對于應(yīng)用系統(tǒng),將所需的界面主題資 源文件存放在類路徑中即可。服務(wù)器端在根據(jù)客戶端的請求定位界面主題資源 時,是在整個類路徑中定位的,不需要一定將資源文件存放在應(yīng)用系統(tǒng)的目錄 下。
進(jìn)一步,由于在定位界面主題資源時,是在類路徑中定位的,這種機制決 定了界面主題資源可以被分開成多個獨立文件。
步驟204、判斷是否存在所述請求的界面主題資源,如果不存在所述請求 的界面主題資源則裝載默認(rèn)的界面主題資源,存在則進(jìn)入下一步驟205。 步驟205、裝載所述確定的界面主題資源。
經(jīng)過步驟203的定位確定后,即可知ii^戶端請求的界面主題資源的類路 徑,通過類裝載功能將所述界面主題資源類文件從類路徑中裝載,實現(xiàn)界面主 題的更換。
進(jìn)一步,還包括步驟206、將所述裝載的界面主題資源以流的方式傳輸至 所述請求的客戶端,在客戶端顯示更換后的界面主題。
根據(jù)客戶端的URL,將所述更換后的界面主題傳輸至所述請求更換界面 主題的客戶端。所述傳輸?shù)姆绞娇梢允嵌M(jìn)制流的方式,也可以是其他方式, 本發(fā)明并不對此進(jìn)行限定,本發(fā)明優(yōu)選采用二進(jìn)制流的方式傳輸所述更換后的 界面主題至客戶端。
參照圖3,示出了本發(fā)明實施例一種更換界面主題的系統(tǒng)的結(jié)構(gòu)框圖,包
括
接受請求單元301,用于接受客戶端的請求。
當(dāng)客戶端要更換界面主題時,則向服務(wù)器發(fā)出更換界面主題的請求,所述 服務(wù)器接收所述客戶端更換界面主題的請求。
解析單元302,用于根據(jù)客戶端的請求,解析出客戶端請求裝載的界面主 題資源。
月良務(wù)器端接收客戶端的統(tǒng)一資源定位符(Uniform Resource Locator, URL) 根據(jù)所述URL解析出客戶端請求裝載的界面主題。URL的作用是告訴瀏覽器 使用什么協(xié)議,以及在網(wǎng)絡(luò)的什么地方去尋找下載的文件。URL用來定義Web 網(wǎng)頁的地址。根據(jù)客戶端的URL就可以解析出客戶端所要請求的資源地址以 及所要請求的資源名稱。
定位單元303,用于定位所述請求的界面主題資源,確定所述請求裝載的 界面主題資源的類路徑。
本發(fā)明所述的界面主題資源是按照一定的目錄形式組織的,每個界面主題
或與主題相關(guān)的文件,都存放在一個單獨的文件夾中,當(dāng)需要增加一種新的界 面主題時,只需再建立一個類似的文件夾即可。在本發(fā)明中,可以將任何位置 的文件或文件夾存放于類路徑中,因此,對于應(yīng)用系統(tǒng),將所需的界面主題資 源文件存放在類路徑中即可。服務(wù)器端在根據(jù)客戶端的請求定位界面主題資源 時,是在整個類路徑中定位的,不需要一定將資源文件存放在應(yīng)用系統(tǒng)的目錄 下。
進(jìn)一步,由于在定位界面主題資源時,是在類路徑中定位的,這種機制決 定了界面主題資源可以被分開成多個獨立文件。例如, 一個應(yīng)用系統(tǒng)提供三種
界面主題a、 b、 c,則可以把界面主題a所需要的所有資源文件打包成一個獨 立的,界面主題b所需要的資源文件打包成一個獨立的,界面主題c所需的所 有資源文件打包成一個獨立的,分別是a.jar、 b.jar和c.jar,將這三個文件都存 放到類路徑中,因此,對于界面主題管理來說,就可以查找到全部這三種界面 主題的資源文件了。
裝載單元304,用于裝載所述確定的界面主題資源。
知ii^戶端請求的界面主題資源的類路徑,調(diào)用裝載單元將所述界面主題
資源類文件爿Mv類路徑中裝載,實現(xiàn)界面主題的更換。
進(jìn)一步,還包括傳輸單元305,用于將所述裝載的界面主題資源以流的方 式傳輸至所述請求的客戶端,在客戶端顯示更換后的界面主題。
根據(jù)客戶端的url,將所述更換后的界面主題傳輸至所述請求更換界面 主題的客戶端。所述傳輸?shù)姆绞娇梢允嵌M(jìn)制流的方式,也可以是其他方式, 本發(fā)明并不對此進(jìn)行限定,本發(fā)明優(yōu)選采用二進(jìn)制流的方式傳輸所述更換后的 界面主題至客戶端。
進(jìn)一步,還包括資源組織單元306,用于組織界面主題資源,打包存儲所 述界面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
所述資源組織單元單獨打包界面主題資源,獨立存放所述界面主題資源至 應(yīng)用服務(wù)系統(tǒng)的類路徑中。
參照圖4,示出了本發(fā)明另一實施例一種更換界面主題的系統(tǒng)的結(jié)構(gòu)框 圖,包括
接受請求單元401,用于接受客戶端的請求。
當(dāng)客戶端要更換界面主題時,則向服務(wù)器發(fā)出更換界面主題的請求,所述 服務(wù)器接收所述客戶端更換界面主題的請求。
解析單元402,用于根據(jù)客戶端的請求,解析出客戶端請求裝載的界面主
題資源。
月良務(wù)器端接收客戶端的統(tǒng)一資源定位符(Uniform Resource Locator, URL ) 根據(jù)所述URL解析出客戶端請求裝栽的界面主題。URL的作用是告訴瀏覽器 使用什么協(xié)議,以及在網(wǎng)絡(luò)的什么地方去尋找下載的文件。URL用來定義Web 網(wǎng)頁的地址。根據(jù)客戶端的URL就可以解析出客戶端所要請求的資源地址以 及所要請求的資源名稱。
定位單元403,用于定位所述請求的界面主題資源,確定所述請求裝載的 界面主題資源的類路徑。
本發(fā)明所述的界面主題資源是按照一定的目錄形式組織的,每個界面主題 或與主題相關(guān)的文件,都存放在一個單獨的文件夾中,當(dāng)需要增加一種新的界 面主題時,只需再建立一個類似的文件夾即可。在本發(fā)明中,可以將任何位置 的文件或文件夾存放于類路徑中,因此,對于應(yīng)用系統(tǒng),將所需的界面主題資 源文件存放在類路徑中即可。服務(wù)器端在根據(jù)客戶端的請求定位界面主題資源 時,是在整個類路徑中定位的,不需要一定將資源文件存放在應(yīng)用系統(tǒng)的目錄 下。
進(jìn)一步,由于在定位界面主題資源時,是在類路徑中定位的,這種機制決 定了界面主題資源可以被分開成多個獨立文件。例如, 一個應(yīng)用系統(tǒng)提供三種 界面主題a、 b、 c,則可以把界面主題a所需要的所有資源文件打包成一個獨 立的,界面主題b所需要的資源文件打包成一個獨立的,界面主題c所需的所 有資源文件打包成一個獨立的,分別是a.jar、 b.jar和c.jar,將這三個文件都存 放到類路徑中,因此,對于界面主題管理來說,就可以查找到全部這三種界面 主題的資源文件了。
判斷單元404,用于判斷是否存在所述請求的界面主題資源,如果不存在
則調(diào)用裝載單元405裝載所述確定的界面主題資源。 裝載單元405,用于裝載所述確定的界面主題資源。
知道客戶端請求的界面主題資源的類路徑,調(diào)用裝載單元將所述界面主題 資源類文件從類路徑中裝載,實現(xiàn)界面主題的更換。
進(jìn)一步,還包括傳輸單元406,用于將所述裝載的界面主題資源以流的方 式傳輸至所述請求的客戶端,在客戶端顯示更換后的界面主題。
根據(jù)客戶端的URL,將所述更換后的界面主題傳輸至所述請求更換界面
主題的客戶端。所述傳輸?shù)姆绞娇梢允嵌M(jìn)制流的方式,也可以是其他方式,
本發(fā)明并不對此進(jìn)行限定,本發(fā)明優(yōu)選采用二進(jìn)制流的方式傳輸所述更換后的
界面主題至客戶端。
進(jìn)一步,還包括資源組織單元407,用于組織界面主題資源,打包存儲所 述界面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
所述資源組織單元單獨打包界面主題資源,獨立存放所述界面主題資源至 應(yīng)用服務(wù)系統(tǒng)的類路徑中。
以上對本發(fā)明所提供的一種更換界面主題的方法和系統(tǒng)進(jìn)行了詳細(xì)介紹,
說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般 技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處, 綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種更換界面主題的方法,其特征在于,包括接受客戶端的請求;根據(jù)所述客戶端的請求,解析出客戶端請求裝載的界面主題資源;定位所述請求的界面主題資源,確定所述請求裝載的界面主題資源的類路徑;裝載所述確定的界面主題資源。
2、 如權(quán)利要求1所述的更換界面主題的方法,其特征在于,在所述裝載 確定的界面主題資源步驟后還包括將所述裝載的界面主題資源以流的方式傳輸至所述請求的客戶端,在客戶 端顯示所述更換后的界面主題。
3、 如權(quán)利要求1所述的更換界面主題的方法,其特征在于,還包括 組織界面主題資源,打包存儲所述界面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
4、 如權(quán)利要求3所述的更換界面主題的方法,其特征在于 單獨打包所述界面主題資源,獨立存放至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
5、 如權(quán)利要求1所述的更換界面主題的方法,其特征在于,在所述定位 請求的界面主題資源步驟后還包括判斷是否存在所述請求的界面主題資源,如果不存在所述請求的界面主題 資源則裝載默認(rèn)的界面主題資源,存在則進(jìn)入下一步。
6、 一種更換界面主題的系統(tǒng),其特征在于,包括 接受請求單元,用于接受客戶端的請求;解析單元,用于根據(jù)客戶端的請求,解析出客戶端請求裝載的界面主題資源;定位單元,用于定位所述請求的界面主題資源,確定所述請求裝載的界面主題資源的類路徑;裝載單元,用于裝載所述確定的界面主題資源。
7、 如權(quán)利要求6所述的更換界面主題的系統(tǒng),其特征在于,還包括 傳輸單元,用于將所述裝載的界面主題資源以流的方式傳輸至所述請求的客戶端,在客戶端顯示所述更換后的界面主題。
8、 如權(quán)利要求6所述的更換界面主題的系統(tǒng),其特征在于,還包括 資源組織單元,用于組織界面主題資源,打包存儲所述界面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
9、 如權(quán)利要求8所述的更換界面主題的系統(tǒng),其特征在于 所述資源組織單元單獨打包界面主題資源,獨立存放所述界面主題資源至應(yīng)用服務(wù)系統(tǒng)的類路徑中。
10、 如權(quán)利要求6所述的更換界面主題的系統(tǒng),其特征在于,還包括 判斷單元,用于判斷是否存在所述請求的界面主題資源,如果不存在所述載單元裝載所述確定的界面主題資源。
全文摘要
本發(fā)明提供了一種更換界面主題的方法,包括接受客戶端的請求;根據(jù)所述客戶端的請求,解析出客戶端請求裝載的界面主題資源;定位所述請求的界面主題資源,確定所述請求裝載的界面主題資源的類路徑;裝載所述確定的界面主題資源。通過發(fā)明實現(xiàn)界面主題的管理,web應(yīng)用系統(tǒng)不需要修改代碼也不需要重新部署即可增加新的界面主題資源,可增加任意多的界面主題資源,極大提高了界面主題管理的可擴(kuò)展能力。本發(fā)明還公開了一種更換界面主題的系統(tǒng)。
文檔編號G06F17/30GK101106578SQ200710147628
公開日2008年1月16日 申請日期2007年8月31日 優(yōu)先權(quán)日2007年8月31日
發(fā)明者旭 張 申請人:金蝶軟件(中國)有限公司