新四季網

用於生成動態網頁的方法及裝置的製作方法

2023-06-05 06:53:36

專利名稱:用於生成動態網頁的方法及裝置的製作方法
技術領域:
本發明涉及信息處理技術,更具體地說,涉及生成動態網頁的技術。
技術背景在任何基於瀏覽器的架構中,不管後臺伺服器端採用什麼樣的展現技術和架構設計,其最終返回給瀏覽器的必須是瀏覽器能識別的標記: 吾言, 包括超文本標記語言HTML (Hyper Text Markup Language),可擴展 標記語言XML (extensible Markup Language),無線標記語言WML (Wireless Markup Language)等。在動態網頁的製作過程中,通常首先由網頁設計人員(例如美工人員) 利用進行模板設計;然後,由開發人員對才莫板進行填充,以實現各種動態 功能(比如動態數據展現)。設計模板例如HTML設計模板;通常網頁設 計人員(例如美工人員)只具備網頁設計相關的技能(比如懂得HTML語 言),而不知曉任何非網頁設計相關的技能(比如java);而知曉非網頁設 計相關的技能的開發人員在動態網頁的開發過程中,負責後臺程序編碼, 動態數據的生成而不負責網頁風格的控制,開發人員可以利用例如Perl、 Tcl、 Java、 Python、 ASP以及許多其它語言和工具,對才莫板進行填充以實 現動態數據的生成。對於網頁的動態數據展現,存在許多流行的方法,例如Servlet+JSP 方法(JavaServer Page)(或者配合標記庫Taglibs) 、 Velocity方法、可 擴展標i己語言編譯器XMLC ( extensible Markup Language Complier)方 法等。但是目前存在的方法,都必然要求網頁設計人員和開發人員對同一 個模板文件進行協同開發,比如由網頁設計人員先完成模板文件(基於標
準瀏覽器能識別的標記語言,比如HTML或者WML等等);然後由開 發人員修改這個文件,填入只有開發人員能明白的程序代碼,這樣就必然 破壞了原M板文件的標準性,使得被修改後的模板不能被標準瀏覽器所 識別,這對網頁設計人員的後繼維護帶來了巨大的挑戰,由於該模板裡面 加入了大量的網頁設計人員不可識別的程序語言,造成網頁設計人員不能 再用原來的網頁編輯器進行維護。下面將以現有的部分典型技術為例,侮: 進一步的說明。Servlet是在網頁伺服器或應用伺服器上運行的一種Java應用程式, 用來提供伺服器端處理,例如訪問資料庫等。Servlet將展現標記內容和業 務邏輯處理緊密結合在一起。下面為Servlet的實例的一個片段response.setBufferSize (8*1024); response.setContentSize ("text/html"); Print Writer out = response.get Writer ; out.println (",,);out.println (" Serlet Output ,,); out.println ("");out.println ("
Welcome To this World ,,); out.println (""); println (",,);通常使用servlet技術的開發流程是這樣的由網頁設計人員編寫標準 的模板文件(如HTML文件),然後由開發人員將全部的模板寫入servlet 代碼,在這些代碼中間嵌入標準的java邏輯代碼以顯示動態數據。然而, Servlet技術的缺點是明顯的,它很難將展現標記內容和業務邏輯處理分 開,使用該技術對於進一步的維護是致命的,因為任何顯示相關的數據修 改(比如修改一個字體的顏色或者布局),是直接修改java代碼,所以需 要對整個servlet代碼進行重新編譯和部署。JSP是對Servlet技術的擴展,其允許在同 一頁中結合HTML和Java, 例如將Java插入標記頁用於產生動態內容,其中Java提供業務邏輯處理, HTML提供在網頁瀏覽器中展現的頁面。JSP文件訪問Bean或其它能將生成的動態內容發送到瀏覽器的組件。 當網頁伺服器接收到一個JSP文件請求時,伺服器將請求發送至應用服務 器(例如IBM WebSphere)。應用伺服器對JSP文件進行語法分析並生 成Java源文件(被編譯和執行為Servlet) 。 Java源文件的生成和編譯僅 在初次調用Servlet時發生,除非已經更新了原始的JSP文件。在這種情 況下,應用伺服器將檢測所做的更新,並在執行它之前重新生成和編譯 Servlet。下面為JSP的實例的一個片段
Welcome to JSP development where the time is: 儘管JSP不需要在編程時編寫展現標記,但是對於網頁設計人員和開 發人員,他們必須能夠處理/理解嵌入頁中的Java程序和業務邏輯,而這 對於網頁設計人員來說是很困難的,因為網頁設計人員只能認識標準的 HTML,而不能認識嵌入在HTML中間的任何Java程序。如果此時要求 網頁設計人員進行後期的頁面風格修改,將導致巨大的困難。 一方面是此 時的模板文件中加入了大量的非HTML標準標示的代碼,另一方面頁面編 輯工具此時將不可用。Velocity是基於Java的模板引擎,它允許任何人使用簡單而強大的模 板語言來引用定義在Java代碼中的對象。網頁設計人員可以與Java程序 員根據模型/視圖/控制器(Model/View/Controller, MVC )架構並4亍開發 網頁,也就是說,網頁設計人員只集中於設計網頁,而程式設計師只集中於編
寫代碼。下面為Velocity的實例的一個片段 Hello $customer.Name!#foreach($mud in $mudsOnSpecial) #if($customer.hasPurchased($mud))<TR〉 $flogger.getPromo($mud) </TR〉 #end #end然而,實際上,Velocity模板語言非常類似於JSP中的Java程序,一 方面對於網頁設計人員,在模板文件中嵌入了很多他們不能理解的業務邏 輯或其它語言。此外,Velocity模板中要求使用它自定義的VTL (Velocity Template Language, Velocity模板語言),VTL和JSP中的Java代碼本 質上並沒有什麼區別。另一方面加入VTL之後,這個模板已經不是純 HTML 了,其同樣也要求頁面開發人員具有一定的前端編程技能。加入 VTL之後的才莫板,已經不能被標準HTML編輯器所識別。此外,Velocity 的合併引擎(Merge Engine)是以模板為中心,即先讀入模板,然後編譯 模板文件,同時解釋模板中嵌入的VTL,由VTL去訪問數據上下文(Data Context),從而進行動態數據替換。Velocity的上下文只是一個數據存儲
中心,只具有數據,而不具有任何展現相關的信息(由模板中的VTL去解 釋該數據如何展現)。比如頁面要顯示10條記錄,而業務邏輯返回的數據 有20條,Velocity的上下文會;^V這20條數據,然後由模板中的VTL去 循環顯示1-10條,即由模板來控制顯示。這些都對開發人員提出了更高的 要求。XMLC方法是對標記語言頁面,如HTML, XML, WML等進行編 譯以生成一個相應的Java類。這個Java類包含了頁面的完整的文檔對象 模型DOM ( Document Object Model)樹結構及其操作方法,因而可以處 理頁面上的任何內容及其屬性。更重要的是,在XMLC中,巧妙地把動態 內容和HTML中的標識id (identifier )屬性聯繫起來並在Java類中生成 相應的操作方法,比如改變文本內容的屬性等。不同於JSP, XMLC沒有 引進任何額外的HTML/XML標記屬性,只是重用了 id屬性。因而,XMLC 實際上可以處理4壬4可的標記語言,不僅僅限於XML, HTML, WML等。XMLC通過3個步驟處理標記語言頁面,其工作過程為1. 校驗輸入文檔(HTML, XML, WML等)是否有效,標記是否 合法完整。2. 產生一個DOM樹,即Java類代表輸入文檔(頁面)。在實際應 用中,創建一個這個類的實例,使用這個類的實例就可以操縱頁面的DOM 樹。3. 產生處理動態內容的Java方法。動態內容只需要用id標記出來即 可。可以看出,這種方法極大的簡化Java開發人員處理頁面動態內容的工 作量。雖然,XMLC使用標準的HTML做為模板,並且使用HTML的id 屬性做為關鍵字定位。但是,XMLC要求在開發階段就用它的編譯工具進 行預編譯,把模板文件編譯成一堆的Java類。每個Java類封裝了才莫板中 對應結點的屬性和操作方法,然後由程式設計師在業務邏輯中導入這些類,並 且通過應用編禾呈接口 API (Application programming interface)的方式對 這些結點進行賦值,最終運行Java程序輸出HTML內容,XMLC並沒有
合併引擎的概念,同時模板文件只是在開發期間有效,運行期間只是使用編譯出來的Java類。與Servlet、 JSP和Velocity相比,XMLC對於網頁設計人員來說非常 簡單,它基於純HTML模板,但是對於業務開發人員來說非常複雜,因為 只要網頁(或模板)有所改變,開發人員必須重新將HTML模板編譯成 DOM樹,並修復編譯錯誤(例如〈TR、.〈TR〉應該是〈TR、.々TR〉)。因此,需要一種基於可以被瀏覽器瀏覽(解釋)的模板生成動態網頁 的技術,使其對於網頁設計人員和開發人員都非常簡單,並且使他們之間 的聯繫變得簡單,從而使任何一方可以容易地閱讀並理解另一方進行的修 改。發明內容為了解決上述現有技術中存在的問題,本發明提供了用於生成動態網 頁的方法以及用於生成動態網頁的裝置。根據本發明的一個方面,提供了一種用於生成動態網頁的方法,包括 以下步驟根據響應瀏覽器的請求獲得的業務邏輯的結果,生成結構化的數據上下文,該數據上下文包括至少一個用於上述動態網頁的動態數據項;加栽與上述請求相關聯的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下文中的至少一個動態數據項相對應的關聯信息;以及將上述數據上下文中的至少 一個動態數據項合併到上述模板中得到動態網頁。根據本發明的另一個方面,提供了一種用於生成動態網頁的裝置,包括以下步驟業務邏輯處理單元,根據響應瀏覽器的請求獲得的業務邏輯 處理的結果,生成結構化的數據上下文,該數據上下文包括至少一個用於 上述動態網頁的動態數據項;模板加栽單元,用於加載與上述請求相關聯的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下文中的至少一個動態數據項相對應的關聯信息;以及合併單元,將上述數據上下文中的至 少 一個動態數據項合併到上述模板中得到動態網頁。


相信通過以下結合附圖對本發明具體實施方式
的說明,能夠使人們更 好地了解本發明的上述和其它特點、優點和目的。圖1是根據本發明的一個實施例的用於生成動態網頁的方法的流程圖;圖2是根據本發明的實施例的數據上下文與純HTML模板之間對應關 系的示意圖;以及圖3是才艮據本發明的另一個實施例的用於生成動態網頁的裝置的方框圖。
具體實施方式
下面就結合附圖對本發明的各個實施例進行詳細的說明。 用於生成動態網頁的方法圖1是才艮據本發明的一個實施例的用於生成動態網頁的方法的流程圖。在圖1中,首先,在步驟101,根據來自瀏覽器的請求獲得業務邏輯 處理的結果,將該業務邏輯處理結果生成結構化的數據上下文,該數據上 下文包括用於動態網頁的 一個或多個動態數據項。具體地,來自瀏覽器的請求包括本領域的技術人員公知的任何Web 請求,例如用戶在網上銀行上查詢餘額的請求、用戶登陸某個帳戶時進行 身份認證的請求、基於某個關鍵字進行搜索的請求等等,本發明對此沒有 任何限制。並且,本發明只關注業務邏輯處理結果如何向瀏覽器展現,而 根據來自瀏覽器的請求如何獲得業務邏輯處理的結果可以採用現有4支術中 的任何方法。在步驟101中的術語"業務邏輯,,更多的是一種語義上的術語,而非 技術上。只要是跟業務處理有關的任何代碼都可以叫做業務邏輯。對於任 何系統,其目的都在於接受用戶的輸入參數==> 根據輸入參數進行業 務(交易)==> 返回顯示結果。不管什麼系統,都基於這個基本的流程。
這裡根據輸入^t進行的業務(交易),就是所謂的"業務邏輯"。下面通過兩個實例詳細地描述在步驟101中進行的業務邏輯處理。 實例l:關於查詢餘額的請求首先,用戶通過用戶界面(UI)(或者是根員系統的基於胖客戶端的 系統;或者是普通銀行客戶使用網上銀行的瀏覽器頁面),輸入自己的帳 號,然後按提交按鈕。接著,將這個查詢餘額的請求發送到後臺伺服器上,由後臺某個應用 接受這個請求。接著,應用會從請求中提取參數(這裡是指用戶輸入的帳號),然 後交給一個或者多個子程序去處理,以獲得該帳號對應的餘額。這裡的"一 個或者多個子程序,,就是所謂的業務邏輯。業務邏輯的實現方式有多種, 完全依靠用戶自己的設計和代碼實現。例如,這裡可以是一個普通的類, 去直接查詢資料庫,然後得到一個餘額信息。或者,通過EJB ( Ente卬rise JavaBeans,企業JavaBeans )交給一個遠程的應用進行處理,此時這個帳 號參數就相當於遠程應用的一個輸入,然後由那個遠程應用去處理參數, 以獲得餘額信息。或者,基於SO A ( Service-Oriented Architecture,面向 服務構架)架構,這個帳號參數可能會交給一個企業服務總線(ESB)的 糹且件,然後進入一個流禾呈,通過JCA (Java Connector Architecture, Java 連接器架構)的連接器去訪問主機。不管怎麼設計這個過程(簡單的或者 複雜的),其目的都是根據輸入的帳號信息得到用戶的餘額。而這個過程, 都可以叫做業務邏輯。最後,通過業務邏輯處理之後,獲得一個帳戶餘額,該帳戶餘額即是 業務邏輯處理結果,需要把這個帳戶餘額返回給用戶界面,也就是請求響 應的動態網頁。因此該處理結果中包括用於生成該請求響應動態網頁的一 個或多個動態數據項,在步驟101中要將該業務邏輯處理結果生成結構化 的數據上下文。實例2:身楊4人證的請求首先,用戶輸入用戶名和密碼,然後提交請求。
接著,將請求發到後端伺服器,相應的應用程式開始啟動,從請求中 獲得用戶名和密碼。接著,將獲得的用戶名和密碼發送給相應的業務邏輯去認證該用戶名和密碼是否正確。這個業務邏輯可以是直接訪問資料庫進行用戶名/密碼 對比;交給遠程應用服務,該遠程應用服務可以是EJB,也可以是SOA, 或者輕量級目錄訪問協i義LDAP( Lightweight Directory Access Protocol,) 等,把用戶名/密碼做為遠程應用的輸入。接著,業務邏輯會返回一個輸出,該輸出即是在步驟101中獲得的業 務邏輯處理結果,該業務邏輯處理結果也就是請求響應的動態網頁。例如, 提示該用戶名密碼不正確,或者給出一個信號證明通過驗證。此時業務邏 輯結束。因此該處理結果中包括用於生成該請求響應動態網頁的一個或多 個動態數據項,在步驟101中要將該業務邏輯處理結果生成結構化的數據 上下文。這裡的結構化可以理解為生成特定的數據結構,或者數據類等等, 以4更於後面處理。圖2中的左面方框顯示了一個在步驟101中生成的結構化的數據上下 文的實例,該數據上下文包括用於動態網頁的一個或多個動態數據項。在 該數據上下文的實例中,Accountld、 Customerld和Balance是基本類型 數據,而AccountList是一個隊列(ArrayList),該隊列用於存儲多個數 據結構,並且該隊列中的每行是一個子數據上下文,即一個Accountlnfo 類,該Accountlnfo類用於存儲寸壬何數據,例力n AccountNumber、 AccountType和AccountBalance的動態數據項。總而言之,應該理解業務邏輯是一個非常廣義的說法,表示的是真正 的業務處理邏輯代碼,與具體的技術和算法實現沒有任何關係。並且我們 在該步驟只是獲得業務邏輯的處理結果,至於業務邏輯如何處理並不在我 們的保護範圍之內,此外,在步驟101中生成的結構化的數據上下文以及 在數據上下文中包含的動態數據項如何使用將在下面的步驟102中進行詳 細描述。接著,在步驟102,加栽與在步驟101中的來自瀏覽器的請求相關聯 的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下文中的一個或多 個動態數據項相對應的關聯信息。模板是網頁設計人員工作的結果。現有技術中 一般動態網站的開發過程是首先由網頁開發人員開發靜態網頁(比如純HTML),然後交給業 務開發人員。業務開發人員去修改這個靜態網頁,其中嵌入大量的業務邏 輯或者顯示邏輯,使得這個網頁可以顯示動態數據,此時,這個被fl"改過 的網頁就是所謂的"模板"。這些模板是存儲在應用伺服器端,由應用程 序負責讀取和解釋,根據不同的請求,將這些模板文件最終編譯運行為標 準的瀏覽器能識別的標示(比如HTML)返回給客戶請求,從而顯示在客 戶端。模板和請求的關聯,由客戶的應用程式來決定。 一種常用的實現是 將模板文件和請求直接關聯,比如用戶請求的統一資源定位符(URL, Uniform Resource Locator ) 是 http:〃www.sami)le.com/mvweb/ account,isp,則將直接調用名字為"accoimt.jsp"的才莫板文件。現有技術中的模板並不是由純標記語言表示的模板,也就是說,它必 須編譯運行後才能被瀏覽器瀏覽,而本發明使用由純標記語言表示的模板, 由純標記語言表示的模板是可以直接被瀏覽器(例如,網頁設計人員使用 的瀏覽器)解釋的標記語言表示的模板,例如IE瀏覽器可以解釋HTML, WIN WAP瀏覽器可以解釋WML,則純HTML模板就是一種由純標記語 言表示的模板,純WML模板也是一種由純標記語言表示的模板,本發明 生成模板的標記語言包括例如HTML, XML, WML等,以及本領域的技 術人員公知的及未來發展的任何其它標記語言,本發明對此並沒有限制。 使用由純標記語言表示的模板進行請求響應的瀏覽器展示時,網頁設計人 員不需了解其不可識別的程序語言,也無需重新編譯代碼。此外,上述模板中包含的與上述數據上下文中的一個或多個動態數據 項相對應的關聯信息被記錄在上述模板中的標記的屬性中,該屬性例如可 以是HTML, XML, WML模板中的標識ID (Identifier)屬性或者其它 屬性,只要其能夠將數據上下文中的動態數據項與模板中的動態內容關聯 起來即可。
下面以由純HTML的標記構成的純HTML模板為例對本實施例進行 描述。純HTML才莫板可以由通常的瀏覽器,例如IE瀏覽器瀏覽。該純 HTML模板事先由網頁設計人員編寫,存儲在伺服器中。下面為純HTML的一個實例〈input type = "input" name = "userName" value = "my name" id = "userName">,裡面包含的所有信息全部是標準的HTML語法,沒有任何 的非HTML語法出現,所以將它稱之為"純HTML"。而下面的實例不是純HTML:<input type = "input" name = "userName" value = ",,> , 請 注 意",,不是標準的HTML語法,是Java 邏輯代碼,不能被瀏覽器直接識別,所以這個不能稱之為"純HTML"。 圖2的右面方框是純HTML模板的 一個實例,該純HTML模板沒有 任何非HTML標準的標示,能直接在IE瀏覽器中顯示。在瀏覽器中顯示 為如下兩個表格Accountld123-456-789CustomerldX00192810281B由iicc2234332.00AccouiitNumbcrAccoimtTypeAccountBalance01010-202920-1929192Credit10000.00對於圖2右面方框的純HTML模型,將一個或多個標記的ID屬性作 為與上述數據上下文中的一個或多個動態數據項相對應的關聯信息,例如, 包括Accoimtld、 Customerld、 Balance和AccountList。其中AccountList 是一個隊列,其中包含了多條記錄,每條記錄都是另一個子數據上下文 (Accountlnfo類),Accountlnfo類又包括ID屬性AccoimtNumber、 AccoimtType和AccountBalance。這些ID屬性對應的被標記的內容可以 被圖2中的左邊方框的數據上下文中的動態數據替換。圖2正是顯示了圖
2中的左邊方框的數據上下文和圖2中的右邊方框的模板之間的對應關係, 表明圖2中的右邊的模板是來自瀏覽器的請求相關聯的模板。應該理解, 這裡示出的純HTML模型及其ID屬性只是為了示例性說明,本發明可以 使用其它標記語言(例如XML或者WML等)及其它屬性實現。應該注意,數據上下文的結構應該與顯示邏輯相對應,以及生成的格 式化數據中的屬性名稱和層次位置必須與純HTML模板中定義的各個ID 屬性相對應。接著,在步驟103,通過將上述數據上下文中的一個或多個動態數據 項合併到上述模板中。具體地,將上述一個或多個動態數據項合併到上述^^板中的方法可以 是本領域的技術人員公知的任何方法,其包括但不限於如下步驟遍歷上 述生成的數據上下文中的每一個數據項;以及如果在上述模板找到與該數 據項相對應的關聯信息,則將上述數據項替換到上述模板中的相應位置。例如,對於上述純HTML模板,遍歷上迷生成的數據上下文中的每一 個動態數據項,如果在上述純HTML模板中找到與該動態數據項相對應的 ID屬性,則將上述動態數據項替換到上述純HTML模板中的相應位置。 而且,當在上述純HTML模板中沒有與上述生成的數據上下文中的該動態 數據項相對應的ID屬性時,才艮告該鐐溪信息。此外,當遍歷結束時在上 述純HTML模板中還有ID屬性的值沒被相應的動態數據替換時,報告該 錯誤信息。上述的遍歷方法和報錯方法可以利用本領域的技術人員z^知的 任何方法,例如可以採用字符串查找匹配,將id屬性出現的位置進行編碼 或者將模板拆分為DOM結點等等方式,本發明對此並沒有限制,在此不 再贅述。此外,本實施例的方法可以在步驟103之前,對上述模板進行語法檢 查,以發現其中的任何編寫錯誤,並且在步驟103之後,還可以對合併生 成的網頁進行語法檢查,以發現合併過程中產生的任何錯誤。上述的語法 檢查方法可以利用本領域的技術人員公知的任何方法,比如標示匹配原則 校驗,位置定位校驗等等,本發明對此並沒有限制,在此不再贅述。 通過以上的說明可知,本實施例的用於生成動態網頁的方法使用由純 標記語言表示的模板,並不需要附加的編譯器對模板進行編譯,從而簡化 了生成動態網頁的過程。通過使用純標記語言表示的模板,可以釆用現有 的任何標記語言設計工具進行網頁設計,從而對於網頁設計人員來說不需 要任何其它技術要求。此外,網頁的整個開發過程和動態功能的實現都是 基於標記語言,沒有引入任何非標記語言的腳本或標籤,從而使網頁設計人員和開發人員之間的聯繫變得簡單。此外,本實施例的方法不需要對模 板進行任何的預處理,只需要在運行時將其中的動態數據項進行相應的替換,從而是一種簡單有效的網頁生成方法。用於生成動態網頁的裝置在同一發明構思下,圖3是根據本發明的另一個實施例的用於生成動 態網頁的裝置的方框圖。下面就結合該圖,對本實施例進行描述。對於那 些與前面實施例相同的部分,適當省略其說明。在圖3中,用於生成動態網頁的裝置300包括:業務邏輯處理單元301, 根據來自瀏覽器的請求獲得業務邏輯處理的結果,將該業務邏輯處理結果 生成結構化的數據上下文,該數據上下文包括至少一個用於上述動態網頁 的動態數據項;模板加栽單元302,用於加栽與上述請求相關聯的模板, 該模板可以被上述瀏覽器瀏覽並包含與上述數據上下文中的至少 一個動態 數據項相對應的關聯信息;以及合併單元303,將上述數據上下文中的每 一個動態數據合併到上述模板中。具體地,業務邏輯處理單元301接收到的來自瀏覽器的請求包括本領 域的技術人員公知的任何Web請求,例如用戶在網上銀行上查詢餘額的請 求、用戶登陸某個帳戶時進行身傷H人證的請求、基於某個關鍵字進行搜索 的請求等等,本發明對此沒有任何限制。業務邏輯處理單元301進行的"業務邏輯"更多的是一種語義上的術 語,而非技術上。只要是跟業務處理有關的任何代碼都可以叫做業務邏輯。 對於任何系統,其目的都在於接受用戶的輸入參數==> 根據輸入參數 進行業務(交易)==> 返回顯示結果。不管什麼系統,都基於這個基本 的流程。這裡根據輸入^t進行的業務(交易),就是所謂的"業務邏輯"。描述業務邏輯處理單元301進行的業務邏輯的例子可以參見用於生成 動態網頁的方法中的實例,這裡不再贅述。總而言之,應該理解業務邏輯是一個非常廣義的說法,表示的是真正 的業務處理邏輯代碼,與具體的技術和算法實現沒有任何關係。此外,業 務邏輯處理單元301生成的數據上下文以及在數據上下文中包含的動態數 據將在下面進行詳細描述。模板加載單元302加栽與在業務邏輯處理單元301接收到的來自瀏覽 器的請求相關聯的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下 文中的一個或多個動態數據項相對應的關聯信息。具體地,該模板加栽單元302加載的模板是由可以被瀏覽器(例如, 網頁設計人員使用的瀏覽器)解釋的標記語言表示的模板,標記語言包括 例如HTML, XML, WML等,以及本領域的技術人員公知的及未來發展 的任何其它標記語言,本發明對此並沒有限制。此外,上述模板中包含的與上述數據上下文中的一個或多個動態數據 項相對應的關聯信息被記錄在上述才莫板中的標記的屬性中,該屬性例如可 以是HTML, XML, WML才莫板中的標識ID (Identifier)屬性或者其它 屬性,只要其能夠將數據上下文中的動態數據項與模板中的動態內容關聯 起來即可。由純HTML的標記構成的純HTML模板的實例可以參見用於生成動 態網頁的方法的實例,這裡不再贅述。合併單元303將業務邏輯處理單元301生成的上述數據上下文中的一 個或多個動態數據項合併到模^口載單元302加栽的上述模板中。具體地,將上述一個或多個動態數據項合併到上述才莫板中的合併單元 303可以是本領域的技術人員公知的任何單元,其包括但不限於遍歷單 元,用於遍歷上述生成的數據上下文中的每一個數據項;以及替換單元, 如果在上述模板找到與該數據項相對應的關聯信息,則將上述數據項替換 到上述模板中的相應位置。
例如,對於上述純HTML模板,上述遍歷單元遍歷上述生成的數據上 下文中的每一個動態數據項,以及如果在上述純HTML模板中找到與該動 態數據項相對應的ID屬性,上述替換單元將上述動態數據項替換到上述 純HTML模板中的相應位置。而且,合併單元303還包括一報錯單元,當 在上述純HTML模板中沒有與上述生成的數據上下文中的該動態數據項 相對應的ID屬性時,該報錯單元報告該錯誤信息。此外,當遍歷結束時 在上述純HTML模板中還有ID屬性的值沒被相應的動態數據替換時,該 報錯單元報告該g信息。上述遍歷單元、替換單元和報錯單元可以是本 領域的技術人員公知的任何單元,例如可以採用字符串查找匹配單元,將 id屬性出現的位置進行編碼單元或者將模板拆分為DOM結點單元等等方 式,本發明對此並沒有限制,在此不再贅述。此外,本實施例的用於生成動態網頁的裝置300還包括一語法檢查單 元,其在合併單元303進行上述合併之前,對上述模板進行語法檢查,以 發現其中的任何編寫錯誤,並且在合併單元303進行上述合併之後,對上 述生成的動態網頁進行語法檢查,以發現合併過程中產生的任何錯誤。語 法檢查單元可以是本領域的技術人員公知的任何單元,比如標示匹配原則 校驗單元,位置定位校驗單元等等,本發明對此並沒有限制,在此不再贅 述。通過以上的說明可知,本實施例的用於生成動態網頁的裝置使用由純 標記語言表示的模板,並不需要附加的編譯器對模板進行編譯,從而簡化 了生成動態網頁的過程。通過使用純標記語言表示的模板,可以採用現有 的任何標記語言設計工具進行網頁設計,從而對於網頁設計人員來說不需 要任何其它技術要求。此外,網頁的整個開發過程和動態功能的實現都是 基於標記語言,沒有引入任何非標記語言的腳本或標籤,從而使網頁設計人員和開發人員之間的聯繫變的簡單。此外,本實施例的裝置不需要對模 板進行任何的預處理,只需要在運行時將其中的動態數據項進行相應的替 換,從而是一種簡單有效的網頁生成裝置。以上雖然通過一些示例性的實施例詳細地描述了本發明的用於生成動
態網頁的方法以及用於生成動態網頁的裝置,但是以上這些實施例並不是 窮舉的,本領域技術人員可以在本發明的精神和範圍內實現各種變化和修改。因此,本發明並不限於這些實施例,本發明的範圍僅由所附權利要求為準。
權利要求
1.一種用於生成動態網頁的方法,包括以下步驟根據響應瀏覽器的請求獲得的業務邏輯處理的結果,生成結構化的數據上下文,該數據上下文包括至少一個用於上述動態網頁的動態數據項;加載與上述請求相關聯的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下文中的至少一個動態數據項相對應的關聯信息;以及將上述數據上下文中的至少一個動態數據項合併到上述模板中得到動態網頁。
2. 根據權利要求l所述的用於生成動態網頁的方法,其中,上述合 並步驟包括遍歷上述生成的數據上下文中的每一個數據項; 如果在上述模板找到與該數據項相對應的關聯信息,則將上述數據項 替換到上述才莫板中的相應位置。
3. 根據權利要求2所述的用於生成動態網頁的方法,其中,上述合 並步驟還包括當在上述模板中沒有與上述生成的數據上下文中的該數據項相對應的 關聯信息時,報告該餘溪信息。
4. 根據權利要求2所述的用於生成動態網頁的方法,其中,上述合 並步驟還包括當遍歷結束時在上述模板中還有關聯信息沒被相應的動態數據項替換 時,報告該錯誤信息。
5. 根據權利要求l所述的用於生成動態網頁的方法,還包括 在上述合併步驟之前,對上述模板進行語法檢查。
6. 根據權利要求l所述的用於生成動態網頁的方法,還包括 在上述合併步驟之後,對上述生成的動態網頁進行語法檢查。
7. 根據權利要求1-6中任何一項所述的用於生成動態網頁的方法, 其中,上述模板是由標記語言表示的模板;上述模板中包含的與上述數據上下文中的至少一個動態數據項相對應 的關聯信息被記錄在上述模板中的標記的屬性中。
8. 根據權利要求7所述的用於生成動態網頁的方法,其中,上述模 板是由HTML、 XML或者WML表示的模板。
9. 根據權利要求8所述的用於生成動態網頁的方法,其中,上述模 板中包含的與上述數據上下文中的至少一個動態數據項相對應的關聯信息 被記錄在上述模板中的標記的ID屬性中。
10. —種用於生成動態網頁的裝置,包括以下步驟 業務邏輯處理單元,根據響應瀏覽器的請求獲得的業務邏輯處理的結果,生成結構化的數據上下文,該數據上下文包括至少一個用於上述動態 網頁的動態數據項;模板加載單元,用於加載與上述請求相關聯的模板,該模板可以被瀏 覽器瀏覽並包含與上述數據上下文中的至少一個動態數據項相對應的關聯 信息;以及合併單元,將上述數據上下文中的至少一個動態數據項合併到上述模 板中得到動態網頁。
11. 根據權利要求10所述的用於生成動態網頁的裝置,其中,上述 合併單元包括遍歷單元,用於遍歷上述生成的數據上下文中的每一個數據項; 替換單元,如果在上述模板找到與該數據項相對應的關聯信息,則將 上述數據項替換到上述模板中的相應位置。
12. 根據權利要求11所述的用於生成動態網頁的裝置,其中,上述 合併單元還包括報錯單元,當在上述模板中沒有與上述生成的數據上下文中的該數據 項相對應的關聯信息時,報告該餘溪信息。
13. 根據權利要求11所述的用於生成動態網頁的裝置,其中,上述 合併單元還包括報錯單元,當遍歷結束時在上述模板中還有關聯信息沒被相應的動態數據項替換時,報告該錯誤信息。
14. 根據權利要求10所述的用於生成動態網頁的裝置,還包括 語法檢查單元,在上述合併單元進行合併之前,對上述模板進行語法檢查。
15. 根據權利要求10所述的用於生成動態網頁的裝置,還包括 語法檢查單元,在上述合併單元進行合併之後,對上述生成的動態網頁進行語法檢查。
16. 根據權利要求10-15中任何一項所述的用於生成動態網頁的裝 置,其中,上述模板是由標記語言表示的模板;上述模板中包含的與上述數據上下文中的至少一個動態數據項相對應 的關聯信息被記錄在上述模板中的標記的屬性中。
17. 根據權利要求16所述的用於生成動態網頁的裝置,其中,上述 模板是由HTML、 XML或者WML表示的模板。
18. 根據權利要求17所述的用於生成動態網頁的裝置,其中,上述 模板中包含的與上述數據上下文中的至少一個動態數據項相對應的關聯信 息被記錄在上述模板中的標記的ID屬性中。
全文摘要
本發明提供了用於生成動態網頁的方法以及用於生成動態網頁的裝置。根據本發明的一個方面,提供了一種用於生成動態網頁的方法,包括以下步驟根據響應瀏覽器的請求獲得的業務邏輯處理的結果,生成結構化的數據上下文,該數據上下文包括至少一個用於上述動態網頁的動態數據項;加載與上述請求相關聯的模板,該模板可以被瀏覽器瀏覽並包含與上述數據上下文中的至少一個動態數據項相對應的關聯信息;以及將上述數據上下文中的至少一個動態數據項合併到上述模板中得到動態網頁。
文檔編號G06F17/30GK101165685SQ20061013577
公開日2008年4月23日 申請日期2006年10月19日 優先權日2006年10月19日
發明者餘紹陽, 單建洪, 盧中延 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀