您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 快速建构Oracle网页应用程式系统
專題報導-快速建構Oracle網頁應用程式系統31中興大學計資中心技術通訊第17期快速建構Oracle網頁應用程式系統--使用OraclePL/SQLWeb開發工具沈玉升國立中興大學計算機及資訊網路中心台中市402國光路250號(04-22840306轉724)E-Mail:ysshen@nchu.edu.tw所謂Oracle網頁應用程式是指用Oracle工具程式存取Oracle資料庫的網頁應用程式。目前我們較常見的ASP、PHP、JSP等都有提供資料庫連接支援。但對以Oracle資料庫為基礎所開發的組織內各類資訊系統而言,選擇與資料庫密切配合的Oracle網頁開發工具,更能有效率的發揮資料庫資料計算與網站存取瀏覽的資訊展現速度。本文將略述選擇用PL/SQL當開發網頁應用系統的考量點、OracleWeb應用程式的執行機制、資料庫伺服端的PL/SQLWebToolkit簡介、WEB/應用程式伺服端必須設定的DAD(DatabaseAccessDescriptor)環境設定以及手寫PL/SQL應用程式的開發流程等。並用一個應用實例擷取片段,在WIN/NT平台上示範,看完本章,即使您是個網頁應用程式新手,也可輕易著手建構您的系統了。一、為何選擇用PL/SQL開發網頁?目前Oracle提供的開發工具有JavaServlet、PL/SQLWebToolkit、Designer、Portal或使用Developer的Forms和Reports等五種基本方式來開發網頁程式。上述開發工具各有使用上的優缺點,您必須根據實際的應用系統需求來選擇.以下幾個因素可供在網頁開發工具的選擇評量上參考:1.使用者群屬性。2.使用者介面的複雜度。3.系統開發時限。4.開發者對工具的熟悉度。因此若您要建構的系統使用者來至網際網路、非專業使用、使用者介面只需提供資料查詢瀏覽或單純的資料登錄維護作業(不需做到滑鼠控制等)、有開發時間上的壓力、對Java不熟悉、但熟悉PL/SQL程式語言與基本的HTML網頁資料展現格式等特性,那選擇使用以HTML為基礎的PL/SQLWebToolkit當作網頁專題報導-快速建構Oracle網頁應用程式系統32中興大學計資中心技術通訊第17期應用程式的開發工具應是個不錯的決定。二、OracleWeb應用程式的執行機制:一個完整的Web系統包括了客端的瀏覽器,中間層的web/應用伺服器(Applicationserver),以及後端資料庫伺服器(Databaseserver)等3層架構。其中web/應用伺服器端是用來與Web瀏覽器溝通,及執行應用程式的應用程式伺服器。後端資料庫則儲存以HTML為基礎,使用OraclePL/SQLWeb套裝軟體函數或程序呼叫方式寫的儲存程式碼(StoredProcedures),這些程式碼產生一系列的網頁供瀏覽器顯示。開發這種應用程式碼較簡易,只要您熟悉Oracle的PL/SQL語言,對HTML的資料格式及瀏覽器如何呈現的視窗控制有基本的認識,就可很輕易上手寫web應用程式。本文範例安裝的是Oracle9iApplicationServer1.0.2/NT2000版本,安裝選[OracleHTTPServeronly],圖一為Oracle9i應用程式伺服器的主要元件,Webserver是直接與瀏覽器溝通的元件,其溝通的方法是使用HTTP(HyperTextTransportProtocol),目前Oracle新的版本都是使用標準ApacheWebserver。在我們所開發的應用程式裡,ApacheHTTPservr為固定的檔案提供服務,這些檔案包括固定的HTML檔案或影像檔等。換句話說,您寫的HTML檔案或影像檔必須放在Web主機端,儲存程式必須放在資料庫端。WebserverMod_cgi圖一Oracle9i應用程式伺服器的主要元件在此以PL/SQLWeb應用程式實例(請參考「範例說明」單元)的執行流程來簡略說明運作機制:1.當使用者要求一個Web網頁(鍵入或點選一個URL)時.如圖二畫面鍵入http://shen/schair/index.htmlWebserver(ApacheHTTPserver)mod_jservermod_osemod_plsqlmod_cgiDatabaseJavaPL/SQLApacheJservOracleJSPFormserverReportserver專題報導-快速建構Oracle網頁應用程式系統33中興大學計資中心技術通訊第17期2.HTTPserver收到index.html裡有呼叫執行pls/schair的PL/SQL儲存程序請求時(Request),就會將這個請求送至Apache的mod_plsql模組。由圖三的登入系統原始碼可知,此網頁使用HTMLformmethod接收變數的方式將值傳給action=/pls/schair/tedp_chk3.mod_plsql模組使用包含在URL的設定需求,由DAD(DatabaseAccessDescriptor)決定用哪個資料庫帳號簽入後驅動該資料庫端的儲存程序。4.接收的請求會傳給資料庫的儲存程序(StoredPL/SQLProcedure)處理,執行的結果利用PL/SQLWebToolkit的HTP套裝軟體產生HTML文件格式送出給Webserver,轉送至瀏覽器展示。三、PL/SQLWebToolkit簡介由上述單元的執行流程可知,在您叫用PL/SQL網頁應用程式前,WebToolkit套裝軟體需先載入系統,如此您寫的PL/SQL網頁應用程式才能在資料庫端執行。PL/SQLWebToolkit包括2大類:1.htp和htf套裝軟體:用來產生html標籤格式的輸出結果。此套裝軟體包含使用到的PL/SQL資料類別,程序及函式呼叫等,與HTML3.2版本指令一對一對應,用來將資料庫端抓取的資料利用該套裝軟體產生動態html網頁輸出。如下左邊「呼叫Procedure」指令,是存在資料庫端的程序程式,其執行後的輸出結果如右邊的「產生html」展示在瀏覽器上。呼叫Procedure產生HTMLProcedureshowBeginhtp.htmlOpen;htp.header(1,’Overview’);htp.print(‘HelloWord’);htp.para;htp.bold(‘基本網頁展現’);htp.htmlclose;End;HTMLH1Overview/H1HelloWordpB基本網頁展現/B/HTML2.owa套裝軟體:字首OWA_開頭的套裝軟體用來處理資料庫伺服端與web應用伺服端間的http溝通。包括owa_cookie/cookie設定,owa_image/影像按鈕方位操控,owa_opt_lock/資料庫記錄鎖定,owa_pattern/字串搜尋,owa_sec/安全機制,owa_text/大量字串處理,owa_util/軟體工具等函式或程序呼叫。以下是cookie設定的儲存程序owa使用範例:專題報導-快速建構Oracle網頁應用程式系統34中興大學計資中心技術通訊第17期procedureschair_setcookie(v_cookie_nameVARCHAR2,v_cookie_valVARCHAR2,v_closeVARCHAR2DEFAULT'CLOSE')ISBEGINowa_util.Mime_Header('text/html',FALSE);owa_cookie.Send(v_cookie_name,v_cookie_val);IFv_close='CLOSE'THENowa_util.Http_Header_Close;ENDIF;END;您可使用以下SQL指令來列出上述套裝軟體名稱,以確認PL/SQLWebToolkit是否安裝成功:selectowner,object_namefromdba_objectswhereobject_type=’PACKAGE’and(object_namelike‘HT%’orobject_namelike‘OWA%’);四、建DAD來啟動資料庫相關程式執行在OracleHTTPserver上選mod_plsql模組,建一個DAD(DatabaseAccessDescriptor)紀錄,作為PL/SQLweb應用程式呼叫資料庫服務時用哪個資料庫帳號簽入,以驅動該資料庫端的儲存程序。以下是DAD名稱為schair的步驟:1.在瀏覽器上鍵入:http://shen/點選mod_plsql.專題報導-快速建構Oracle網頁應用程式系統35中興大學計資中心技術通訊第17期2.點選:閘道DatabaseAccessDescriptor設定3.點選:新增預設(空白的組態)4.新增schairDAD專題報導-快速建構Oracle網頁應用程式系統36中興大學計資中心技術通訊第17期五、手寫PL/SQL網頁應用程式當您已將使用者系統環境設定完成後,接著就可撰寫您的網頁應用程式了。只要有一般的文書編輯器就可開始動工。以下是網頁的撰寫流程:1.應用程式設計:以HTML為基礎的web應用程式使用http通訊協定,因此在設計網頁間的流程時必須考慮到http運作的特性限制。例如http的運作是”stateless”,server端無法辨認請求者的身分,因此必須建立系統登入機制以辨認呼叫者的身份。目前是使用cookie儲存使用者帳號密碼在client端,並在每個被呼叫的程序程式裡作cookie檢查。由於web網頁的運作模式是使用者叫用一個URL進入系統,從網頁接收資料,接著web等待使用者下達下一個點選按鈕或輸入相關訊息,因此明確的畫出每個網頁間的連接流程,定義所有的模組功能及傳遞參數是有必要的。2.網頁設計:依據上一個步驟畫出的應用系統流程圖,設計HTML網頁。當然您可用記事本完成所有的HTML,但選擇視覺化的HTML軟體編輯器(像MacromediaDreamwaver)來設計您的網頁畫面以產生html程式碼會更有效率。3.轉換:將html程式碼改寫成使用PL/SQL儲存程式,只需將每行的html用單引號’括起來,由htp.print來呼叫就完成了。如下例:htp.print('tabletrtd');htp.print('ahref=table_qry?v_emp='||v_empl||''||'target=main_frame'||'');htp.print('Table查詢/維護/a');htp.print('/tdtd');htp.print('ahref=table_logout?v_emp='||v_empl||''||'target=_top登出系統/a');htp.print('/td/tr/table');4.加入動態邏輯程式:將pl/sql相關的資料計算指令嵌入程式中。六、範例說明以下web應用程式範例是用來查詢資料庫相關table系統文件紀錄。在此擷取相關網頁及程式碼片段來說明使用PL/SQL寫成的應用程式開發步驟。專題報導-快速建構Oracle網頁應用程式系統37中興大學計資中心技術通訊第17期1.入口網站呼叫,接收帳號密碼:圖二畫面鍵入http://shen/schair/說明:內定值是呼叫webserver端的isuites目錄\apache\apache\htdocs\schair\index.html網頁其中shen是HTTPserver的主機名稱,schair是在htdoc文件根目錄下(由http.conf所定義的DocumentRootc:\isuites\Apache\Apache\htdocs)所建的應用程式存放目錄,除了PL/SQL儲存程序存放在資料庫,其餘的web應用程式檔案均放在此目錄下。2.index.html網頁原始碼製作:圖三圖二的原始碼內容.說明:1.bodybackground=ros
本文标题:快速建构Oracle网页应用程式系统
链接地址:https://www.777doc.com/doc-14402 .html