快速建构Oracle网应用程式系统_第1页
快速建构Oracle网应用程式系统_第2页
快速建构Oracle网应用程式系统_第3页
快速建构Oracle网应用程式系统_第4页
快速建构Oracle网应用程式系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

快速建構Oracle網頁應用程式系統-使用Oracle PL/SQL Web 開發工具沈玉升國立中興大學計算機及資訊網路中心台中市402國光路250號(04-22840306轉724)E-Mail:.tw 所謂Oracle網頁應用程式是指用Oracle工具程式存取Oracle資料庫的網頁應用程式。目前我們較常見的ASP、PHP、JSP等都有提供資料庫連接支援。但對以Oracle資料庫為基礎所開發的組織內各類資訊系統而言,選擇與資料庫密切配合的Oracle網頁開發工具,更能有效率的發揮資料庫資料計算與網站存取瀏覽的資訊展現速度。本文將略述選擇用PL/SQL當開發網頁應用系統的考量點、Oracle Web 應用程式的執行機制、資料庫伺服端的PL/SQL Web Toolkit簡介、WEB /應用程式伺服端必須設定的DAD(Database Access Descriptor)環境設定以及手寫PL/SQL應用程式的開發流程等。並用一個應用實例擷取片段,在WIN/NT平台上示範,看完本章,即使您是個網頁應用程式新手,也可輕易著手建構您的系統了。一、為何選擇用PL/SQL開發網頁?目前Oracle提供的開發工具有Java Servlet、PL/SQL Web Toolkit、Designer、Portal或使用 Developer的Forms和Reports等五種基本方式來開發網頁程式。上述開發工具各有使用上的優缺點, 您必須根據實際的應用系統需求來選擇. 以下幾個因素可供在網頁開發工具的選擇評量上參考:1. 使用者群屬性。2. 使用者介面的複雜度。3. 系統開發時限。4. 開發者對工具的熟悉度。因此若您要建構的系統使用者來至網際網路、非專業使用、使用者介面只需提供資料查詢瀏覽或單純的資料登錄維護作業(不需做到滑鼠控制等) 、有開發時間上的壓力、對Java不熟悉、但熟悉PL/SQL程式語言與基本的HTML網頁資料展現格式等特性,那選擇使用以HTML為基礎的PL/SQL Web Toolkit當作網頁應用程式的開發工具應是個不錯的決定。二、Oracle Web 應用程式的執行機制: 一個完整的Web系統包括了客端的瀏覽器,中間層的web/應用伺服器(Application server),以及後端資料庫伺服器(Database server)等3層架構。其中web/應用伺服器端是用來與Web瀏覽器溝通,及執行應用程式的應用程式伺服器。後端資料庫則儲存以HTML為基礎,使用Oracle PL/SQL Web套裝軟體函數或程序呼叫方式寫的儲存程式碼(Stored Procedures),這些程式碼產生一系列的網頁供瀏覽器顯示。開發這種應用程式碼較簡易,只要您熟悉Oracle 的PL/SQL語言,對HTML的資料格式及瀏覽器如何呈現的視窗控制有基本的認識 ,就可很輕易上手寫web 應用程式。本文範例安裝的是Oracle 9i Application Server 1.0.2/NT2000版本, 安裝選Oracle HTTP Server only,為Oracle9i應用程式伺服器的主要元件,Web server是直接與瀏覽器溝通的元件,其溝通的方法是使用HTTP (HyperText Transport Protocol),目前Oracle新的版本都是使用標準Apache Web server。在我們所開發的應用程式裡,Apache HTTP servr為固定的檔案提供服務,這些檔案包括固定的HTML檔案或影像檔等。換句話說,您寫的HTML檔案或影像檔必須放在Web主機端,儲存程式必須放在資料庫端。Apache JservOracleJSPWeb server(Apache HTTP server) Web server JavaPL/SQLMod_cgi Form serverReport serverDatabaseOracle9i應用程式伺服器的主要元件在此以PL/SQL Web應用程式實例(請參考範例說明單元) 的執行流程來簡略說明運作機制:1. 當使用者要求一個Web網頁(鍵入或點選一個URL)時.如畫面鍵入 http:/shen/schair/index.html2. HTTP server收到index.html裡有呼叫執行pls/schair的 PL/SQL儲存程序請求時(Request),就會將這個請求送至Apache的mod_plsql模組。由的登入系統原始碼可知,此網頁使用HTML form method 接收變數的方式將值傳給action=/pls/schair/tedp_chk3. mod_plsql模組使用包含在URL的設定需求,由DAD(Database Access Descriptor)決定用哪個資料庫帳號簽入後驅動該資料庫端的儲存程序。4. 接收的請求會傳給資料庫的儲存程序(Stored PL/SQL Procedure)處理,執行的結果利用PL/SQL Web Toolkit的HTP套裝軟體產生HTML文件格式送出給Web server,轉送至瀏覽器展示。三、PL/SQL Web Toolkit簡介由上述單元的執行流程可知,在您叫用PL/SQL網頁應用程式前,Web Toolkit套裝軟體需先載入系統,如此您寫的PL/SQL網頁應用程式才能在資料庫端執行。PL/SQL Web Toolkit包括2大類:1. htp和 htf套裝軟體:用來產生html標籤格式的輸出結果。此套裝軟體包含使用到的PL/SQL資料類別,程序及函式呼叫等,與HTML3.2版本指令一對一對應,用來將資料庫端抓取的資料利用該套裝軟體產生動態html網頁輸出。如下左邊呼叫Procedure指令,是存在資料庫端的程序程式,其執行後的輸出結果如右邊的產生html展示在瀏覽器上。呼叫Procedure 產生 HTMLProcedure showBeginhtp.htmlOpen;htp.header(1,Overview);htp.print(Hello Word);htp.para;htp.bold(基本網頁展現);htp.htmlclose;End; OverviewHello Word基本網頁展現2. owa套裝軟體:字首OWA_開頭的套裝軟體用來處理資料庫伺服端與web應用伺服端間的http溝通。包括owa_cookie/cookie設定,owa_image/影像按鈕方位操控,owa_opt_lock/資料庫記錄鎖定,owa_pattern/字串搜尋,owa_sec/安全機制,owa_text/大量字串處理,owa_util/軟體工具等函式或程序呼叫。以下是cookie設定的儲存程序owa使用範例:procedure schair_setcookie (v_cookie_name VARCHAR2, v_cookie_val VARCHAR2, v_close VARCHAR2 DEFAULT CLOSE)ISBEGIN owa_util.Mime_Header(text/html,FALSE); owa_cookie.Send(v_cookie_name,v_cookie_val); IF v_close = CLOSE THEN owa_util.Http_Header_Close; END IF;END;您可使用以下SQL指令來列出上述套裝軟體名稱,以確認PL/SQL Web Toolkit是否安裝成功: select owner,object_name from dba_objects where object_type=PACKAGE and (object_name like HT%or object_name like OWA%);四、建DAD來啟動資料庫相關程式執行在Oracle HTTP server上選mod_plsql模組,建一個DAD(Database Access Descriptor)紀錄,作為PL/SQL web應用程式呼叫資料庫服務時用哪個資料庫帳號簽入,以驅動該資料庫端的儲存程序。以下是DAD名稱為schair的步驟:1.在瀏覽器上鍵入: http:/shen/點選mod_plsql.2.點選:閘道 Database Access Descriptor 設定 3.點選:新增預設 (空白的組態) 4.新增schair DAD 五、手寫PL/SQL網頁應用程式 當您已將使用者系統環境設定完成後,接著就可撰寫您的網頁應用程式了。只要有一般的文書編輯器就可開始動工。以下是網頁的撰寫流程:1. 應用程式設計:以HTML為基礎的web應用程式使用http通訊協定,因此在設計網頁間的流程時必須考慮到http運作的特性限制。例如http的運作是”stateless”, server端無法辨認請求者的身分,因此必須建立系統登入機制以辨認呼叫者的身份。目前是使用cookie儲存使用者帳號密碼在client端,並在每個被呼叫的程序程式裡作cookie檢查。由於web網頁的運作模式是使用者叫用一個URL進入系統,從網頁接收資料,接著web等待使用者下達下一個點選按鈕或輸入相關訊息,因此明確的畫出每個網頁間的連接流程,定義所有的模組功能及傳遞參數是有必要的。 2.網頁設計: 依據上一個步驟畫出的應用系統流程圖,設計HTML網頁。當然您可用記事本完成所有的HTML,但選擇視覺化的HTML軟體編輯器(像Macromedia Dreamwaver)來設計您的網頁畫面以產生html程式碼會更有效率。 3.轉換: 將html程式碼改寫成使用PL/SQL儲存程式,只需將每行的html用單引號括起來,由htp.print來呼叫就完成了。如下例: htp.print(); htp.print(|); htp.print(Table查詢/維護); htp.print(); htp.print(登出系統); htp.print(); 4.加入動態邏輯程式: 將pl/sql相關的資料計算指令嵌入程式中。六、範例說明 以下web應用程式範例是用來查詢資料庫相關table系統文件紀錄。在此擷取相關網頁及程式碼片段來說明使用PL/SQL寫成的應用程式開發步驟。1.入口網站呼叫,接收帳號密碼:畫面鍵入 http:/shen/schair/說明:內定值是呼叫web server 端的apacheapachehtdocsschairindex.html網頁其中 shen是HTTP server的主機名稱,schair是在htdoc文件根目錄下(由http.conf所定義的DocumentRootc:isuitesApacheApachehtdocs) 所建的應用程式存放目錄,除了PL/SQL 儲存程序存放在資料庫,其餘的 web應用程式檔案均放在此目錄下。2. index.html網頁原始碼製作:圖二的原始碼內容.說明:1. 使用相對位址呼叫rose.bmp圖檔,因此此檔必須放在htdocs文件根目錄下的schair子目錄才能被呼叫到。2.此行敘述會將變數傳送到資料庫端,啟動DAD所定義的 oracle使用者schair 登入資料庫去執行 tedp_chk 程序。其中 /pls 是由httpd.conf呼叫plsql.conf所定義的虛擬路徑,由mod-plsql用來呼叫相關的PL/SQL工具處理。3.資料庫端的PL/SQL儲存程序: procedure TEDP_CHK(v_empl varchar2,v_pass varchar2)ISbegin schair_setcookie(cookie_pass,upper(v_pass),NOCLOSE); schair_setcookie(cookie_empl,upper(v_empl),NOCLOSE); owa_util.Redirect_Url(owa_util.Get_Owa_Service_Path|table_frame);end;PL/SQL 儲存程序程式. 說明:由index.html所接收的v_empl變數傳給tedp.chk程序去做client的帳號及密碼cookie設定。接著owa_util.Redirect_Url呼叫資料庫端執行table_frame程序,該程序呼叫使用目錄供點選。4.網頁點選資料輸入:變數讀取說明:1.在畫面上方點選TABLE查詢及維護 即出現如圖五網頁,等候輸入變數。拉選應用系統欄位選擇scahir,字串輸入欄鍵入 shfcode,再按執行查詢。2.以下程序片段是此網頁的參數傳遞,接收,及執行等內容:PROCEDURE TABLE_QRY(v_emp varchar2 default null)IS sel_name varchar2(12) ; v_selno varchar2(7); v_date varchar2(8); v_date1 varchar2(8); p_target varchar2(1); p_sys varchar2(10); p_tab varchar2(20); cookie_status varchar2(1) default N;PL/SQL參數傳遞-系統代碼:p_sys cursor c2 is select * sys_code,全部 sys_name from dual union select sys_code,sys_code| |nvl(rtrim(sys_name),?) sys_name from tabowner;搜尋動態網頁記錄begin . htp.FormSelectOpen(p_sys,應用系統:); FOR c2_rec IN c2 LOOP htp.FormSelectOption(c2_rec.sys_name,cattributes=VALUE=|c2_rec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论