隨著Internet/Intranet和Web技術的迅猛發展,上網使用者已不僅僅滿足於瀏覽靜態網頁內容,而更希望通過人機對話的動態互動方式擷取所需資訊;而對於Web開發人員來說,靜態網頁也存在佔用磁碟空間多、資訊內容分散、維護更新困難等問題。因此,在Web上使用動態互動網頁發布資訊已是眾望所歸。 傳統的產生動態網頁的方式——如CGI、ISAPI等存在開銷大、效率低、開發困難、無法與HTML語言緊密結合等缺陷。ASP(ActiveServerPages,中文譯作“動態伺服器網頁")作為微軟公司推出的新一代動態網頁開發技術,正好彌補了這些缺陷,它具有易於產生、物件導向、可擴充、安全性好、適用範圍廣且與HTML完全融合等特點。關於它的工作原理和技術特點,《電腦世界》已作過深入詳細的專題報道,本文不再重複。
由於開發ASP需要編程,往往使初學者望而卻步。FrontPage98作為時下最流行的網站開發工具,具有使用簡便,可視化等特點。有人以為FrontPage98隻能起組織、管理網站和修飾頁面的作用,對開發ASP幫不上什麼忙。其實不然,FrontPage98內部提供了對ASP的支援,使得開發人員不須編程,只要寫幾句SQL語句,就能快速產生與後台資料庫介面的ASP頁,是開發ASP很好的入門工具。本文就將介紹這一技術,並對這一技術的優缺點、與手工編寫方式的結合等加以闡述。
用FrontPage98產生ASP頁的方法:
一、首先確保你的系統滿足運行ASP的條件,即:你的Web伺服器是以下幾種中的一種:
Microsoft Internet Information Server3.0/4.0forWindowsNT;
Microsoft Peer Web Services for Windows NT;
Microsoft Personal Web Server for Windows 95/98。
你的伺服器裝有你所使用的資料庫的32位ODBC驅動程式(包括Access、SQLServer、Oracle、Foxpro等,總之是所有支援ODBC的資料庫),如果沒有,在伺服器上安裝該資料庫的用戶端軟體即可。
你的伺服器上安裝了FrontPage98ServerExtensions(FrontPage98伺服器擴充,安裝FP98時會自動裝入)。你的伺服器上安裝了ASP引擎(運行一下IIS安裝盤或FP98盤中的ASP.EXE檔案即可安裝,也可到以下網址下載:www.microsoft.com/msdownload/iis3/Download2.asp?Prod=1)。對於IIS4或PWSforWIN98,上述“3”、“4”步在安裝時就已設好,不用另裝。另外,“1”、“3”、“4”安裝的順序不能打亂。
二、在控制台|ODBC中定義好你要使用的資料庫的DSN資料來源,注意要定義成“系統資料來源"。
三、建立資料庫查詢頁,在FrontPage98的Explorer中建立一個普通HTML網頁,在上面插入一個Form對象,比如一個單行文字框,並命名為“T1",在Form所在地區單擊滑鼠右鍵,在彈出的菜單中點“FormProperties",再選擇“Sendtoother:"項,在下拉式清單中選擇“CustomISAPI,NSAPI,CGI,orASPScript"項,並單擊Options,在彈出對話方塊的Action中指明目標ASP頁的相對路徑和檔案名稱,如“asp/list.asp",這樣,只要使用者在瀏覽器中一按“提交",頁面就會自動轉到該ASP頁。
四、建立資料庫查詢結果顯示頁。用FrontPage98的Explorer在網站中建立一個目錄,命名為“ASP"(也可以是其他名字),賦予該目錄允許執行程式的屬性,並取消該目錄的可讀屬性,在此目錄下建立一個網頁,並命名為list.asp。ASP網頁的檔案名稱尾碼必須為“.asp",這是規定的。最好把所有ASP檔案放在同一目錄下。用FrontPageEditor開啟此頁,通過選取菜單Insert|Database|DatabaseRegionWizard,進入Wizard。在ODBCDataSourceName(DSN)"中輸入DSN資料來源名(即前面第“二”步在ODBC中定義好的),如果資料庫有使用者名稱和密碼,請選中“Username"和“Password"複選框並輸入內容。輸完後點“NEXT"。在“EntertheSQLstringfortheQuery"中輸入SQL查詢語句,如“SELECT *FROMtableWHEREName=‘%%T1%%’”(table為資料庫中的表名,Name為欄位名),如果語句中有從Form中提交的資料,請在其前後都加上“%%",如“T1"應改為“%%T1%%"。如果你點擊“InsertFormFieldParameter"來加入Form提交的資料,“%%"會被自動加上。
你也可以用“PasteSQLFromClipboard"從剪貼簿貼入SQL語句。輸完後點“NEXT"。點“Addfield",輸入欄位名,在“Enterthequeryfieldnames"中加入要在結果中顯示的欄位(至少要輸入一個)。如果想以表格方式輸出結果,請選中“Showthequeryinatable"複選框。最後單擊“Finish",這樣,一個ASP頁就產生了。進一步調整輸出結果的外觀,直到滿意為止。
注意,表頭的文字可隨意修改,但有機器人控制的“Database:xxxx"部分不能修改,不過可移動或刪除。如果你需要修改前面輸入的DSN資料來源、SQL語句或增減在結果中顯示的欄位,把滑鼠移到Wizard產生的部分,當滑鼠變成一個小機器人時單擊右鍵,在彈出的菜單中選中“DatabaseRegionProperties"或“DatabaseColumnValueProperties"來進行修改。用FrontPage98產生ASP頁的優缺點。
根據筆者的使用經驗,用DatabaseRegionWizard產生ASP頁,具有以下優點:
一、不用編寫代碼,快速高效,簡便易行,適合於初學者和非專業人員。你只須構造好你的SQL查詢語句,其他的事大可放心地交給Wizard去做,比自己手工編寫快。
二、程式對輸入控制嚴格,有效避免非法字元入侵。
用DatabaseRegionWizard產生的程式,通過對錶單提交的資料前後加“%%"並在執行過程中檢驗,以及對所提交資料中的“"”、“’”(即單雙引號)等符號進行層層過濾的做法,避免了表單提交非法資料引起的程式運行錯誤。而手工編寫ASP頁時這些都要自己處理。
三、可以通過FrontPageEditor對輸出結果的格式進行直觀的調整,使輸出結果更為美觀。
通常,由於ASP頁是動態產生的,手工編寫的ASP頁,在FrontPageEditor中由於未經運行,所以看不到輸出結果的樣式,也就無法調整;而Wizard產生的ASP頁,通過FrontPageWebBot(機器人)對輸出結果提供了預覽,你可以像調整任何靜態文字、表格一樣調整輸出結果的外觀。但是,過於自動化的處理有時也往往意味著靈活性的喪失。Wizard為我們帶來方便的同時,也削弱了ASP程式啟動並執行自由度,為我們細緻入微地控製程序帶來了一些麻煩。如果你用Wizard產生了一個ASP頁,然後又在FrontPageEditor中點擊“HTML"卡片,在HTML編輯方式下插入了一些自己的ASP代碼,比如自動分頁的代碼,然後存檔退出,FrontPageEditor會彈出一個“ThecontentsofaFrontPagecomponenthavebeenmodified.
Thesecontentswillbeoverwrittenwhenyousavethispage"的提示,並且只有一個“確定"按鈕,這樣,你在HTML方式下插入的ASP代碼大部分都不會被儲存。筆者就曾犯過這樣的錯誤,結果辛辛苦苦編寫的大段代碼都付諸東流。
與手工編寫的ASP代碼相結合
怎樣才能使Wizard產生的程式碼與手工編寫的ASP代碼在同一ASP頁中和平共處呢?方法是:先用FrontPageEditor開啟ASP頁,調整好用Wizard自動處理的部分,以及所有想用FrontPageEditor處理的部分,如頁面外觀的調整等,存檔退出。在FrontPageExplorer的Folders視圖右擊該ASP頁的表徵圖,在彈出的菜單中選“Open With…",在隨後出現的選項中選“TextEditor(notepad.exe)",ASP頁將以記事本方式開啟。輸入自己的ASP代碼,請注意以下諸點:
一、在“"中的部分是FrontPage機器人自動處理的部分,最好不要改動,但你可以改動下面這一句:“NoRecordFound!",把凡是出現這一句的地方雙引號內的部分改為:“對不起!沒有符合要求的記錄。"或乾脆連雙引號一起刪掉,這樣,當沒有記錄返回時,就不會顯示英文“NoRecordFound!"了。
二、<%……%>中的部分即是ASP的代碼部分。你既可以在已有的<%……%>部分中插入自己的ASP代碼,也可以在HTML語句中通過插入<%……%>來開闢自己的ASP代碼地區。當然,你首先應讀懂自動產生的ASP代碼,理解它的流程式控制制和主要變數的含義,再加入自己的代碼,比如分頁控制等。由於自動產生的ASP代碼中的變數使用的都是描述性的短語,應該不難理解。
三、對於已存在的HTML和Wizard產生的ASP代碼,也可以根據需要稍加調整。比如運行由Wizard產生的ASP頁時,如果你是以表格方式輸出結果,當沒有任何記錄返回時,頁面上也會出現一行孤零零的表頭,很不美觀,原因是Wizard把產生表頭的那幾行HTML語句放在了判斷是否有記錄返回的ASP語句之前,你可以把它挪到後面,使表頭只在有記錄返回時才顯示出來。
四、存檔退出後,記住以後最好不要再用FrontPageEditor開啟此頁了,即使開啟也不要存檔,否則大部分手工加入的ASP代碼都會被清除。如果要編輯,用notepad(記事本)開啟。
筆者曾用上述方法開發了諸如使用者意見反饋、圖書資料庫查詢等ASP應用。一般都是先用DatabaseRegionWizard產生ASP程式架構,再用FrontPageEditor進行外觀潤色,最後用TextEditor(notepad)加入自己的個人化控制,如輸出結果的分頁控制等。在時間有限,並且要求不很複雜的情況下,這種方法的確能起到事半功倍的效果。當然,如果你有更多的時間和精力,想進一步最佳化你的ASP網頁,建議你最好使用ASP的專用開發工具,如InterDev等。順便提醒一句——它可是很佔地兒的。