本文ASP篇
(1) 展示了ASP動態網站設計的一些最基本的方法,相信通過實踐各位對ASP已經有了最基本的瞭解,本篇在回覆大家所提問題的同時,將進一步介紹ASP動態網站的一些基本技巧。
自本文第一篇刊登後 , 絡繹不絕地收到了一些朋友的來信,出乎作者的意料,其中有相當一部分是初次接觸 ASP ,因此有許多朋友都提出為何在瀏覽器中瀏覽 ASP 篇 (1) 中的範例時看到的竟然是原代碼?由於遇到此問題的朋友較多,故作者在此一併回答。首先,我要再次強調 ASP 是一套伺服器端的指令碼環境,當使用者從瀏覽器向 Web 服務器請求 .asp 檔案時, ASP 指令碼開始運行,然後 Web 服務器調用 ASP , ASP 全面讀取請求的檔案,執行所有指令碼命令,並將 Web 頁傳送給瀏覽器,這就意味著你不能簡單地在現有的作業系統 ( 如 Win95 、 98) 下,用瀏覽器中的 " 開啟 " 命令來瀏覽 .asp 檔案;其次,運行 .asp 檔案需要伺服器端的支援,目前除了 WindowsNT 下的 Microsoft Internet Information Server 支援 Active Server 技術外, Active Server 還可用於 MS Windows NT Workstation 和 MS Windows 95/98 中的 Personal Web Server 的構件,因此無論你安裝的是 NT 還是 WIN95/98 ,都必須在原系統上安裝支援 ASP 的伺服器端環境,才能使你的機器得以運行 .asp 檔案。由於目前絕大多數朋友安裝的是 Win95 或是 98 ,因此作者就在這裡著重介紹如何在 Win95/98 下運行和瀏覽 .asp 檔案。因為 MSPersonal Web Server 支援通用閘道介面 (CGI) 應用程式、 Internet 資料庫介面 (IDC) 應用程式和 IIS 應用程式介面 (ISAPI) 應用程式,並且支援運行和開發 ASP 應用程式,所以使得 Win95 及其以後操作平台具備了近似於 NT 的健全的網站運作和管理功能。你所要做的只是在現有的 Win95/98 系統上安裝 MS Personal Web Server ,建議安裝最新的 4.0 版本。當安裝完成後, PWS4.0 會在系統啟動時自動載入。開啟 PWS ,選擇左欄中的 " 進階 " 按鈕 ( 見下圖 Asp2a.gif) ,點取 " 虛擬目錄 " 下的 "/_private" 目錄,然後點擊右邊的 " 編輯屬性 " 按鈕,如圖所示,在對話方塊中你可以編輯該虛擬目錄的實體路徑和目錄名,上圖中 "/_private" 的實體路徑為 "D:\Inetpub\wwwroot" ,該目錄是系統預設的 WWW 發布根目錄,將上一篇中的範例 test1.asp 檔案複製到 "D:\Inetpub\wwwroot" 目錄下。最後,你只要將該虛擬目錄的存取權限選擇為 " 執行 " ,並在瀏覽器的 " 地址 " 欄中輸入 "http://localhost/test1.asp" 就可以運行並瀏覽該 ASP 程式了。
知道了如何運行並瀏覽 ASP 程式,下面我們就繼續 ASP 動態網站設計的學習。
上一篇給大家介紹了幾個最基本的 ASP程式,相信大家已經對ASP的應用有了大致的瞭解,本篇將繼續介紹一些用ASP編寫的WEB動態功能。由於WEB瀏覽器標準的不一致從而使得如何能夠讓自己製作的網站去適應各種不同的瀏覽器成為了廣大網站設計者最為頭疼的事,在如今的形勢之下,我們不肯也不可能去拋棄Netscape或IE中的任何一種客戶群,但我們有時候又不得不去考慮用戶端瀏覽器的實際瀏覽效果,過去我們常用JavaScript編寫一段程式來辨別用戶端使用的不同的瀏覽器,那麼今天就讓我們來看看如何使用ASP更為便捷且精確地達到這一目的。將以下代碼,剪貼到你的Notebook中,並儲存為browser.asp。
< %@ LANGUAGE = VBScript %>
< HTML>
< HEAD>
< TITLE>用ASP提供的瀏覽器效能組件來辨別客戶瀏覽器< /TITLE>
< /HEAD>
< BODY BGCOLOR="White" topmargin="10" leftmargin="10">
< font size="4" face="Arial, Helvetica">
< b>用ASP提供的瀏覽器效能組件來辨< br>別客戶瀏覽器< /b>< /font>< br>
< hr size="1" color="#000000">
< !-- 定義並建立瀏覽器效能物件 -->
< %
Dim bc
Set bc = Server.CreateObject("MSWC.BrowserType")
%>
< !-- 在表格中描述客戶瀏覽器的資訊 -->
< Table border=1>
< tr>
< td>Browser Name< /td>
< td> < %=bc.Browser %> < /Td>
< tr>
< td>Browser Version< /td>
< td> < %=bc.Version %> < /Td>
< tr>
< td>Major Version< /td>
< td> < %=bc.Majorver %> < /Td>
< tr>
< td>Minor Version< /td>
< td> < %=bc.Minorver %> < /Td>
< tr>
< td>Frame Support< /td>
< td> < %=bc.Frames %> < /Td>
< tr>
< td>Table Support< /td>
< td> < %=bc.Tables %> < /Td>
< tr>
< td>Cookie Support< /td>
< td> < %=bc.Cookies %> < /Td>
< tr>
< td>Background Sound Support< /td>
< td> < %=bc.BackgroundSounds %> < /Td>
< tr>
< td>VBScript Support< /td>
< td> < %=bc.VBScript %> < /Td>
< tr>
< td>JavaScript Support< /td>
< td> < %=bc.JavaScript %> < /Td>
< /table>
< /BODY>
< /HTML>
用 http 方式瀏覽該檔案,根據使用的瀏覽器的不同,你會看到類似下圖 (Asp2b.gif) 的頁面。在本例中我們用到了一個 ASP 提供的 ActiveX 組件 --"Browser Capabilities" 。 ActiveX 組件作為基於 Web 的應用程式部分在 Web 服務器上運行,組件提供了應用程式的主要功能 ( 如訪問、修改資料庫等 ) ,這樣 WEB 設計者們就不必建立或重新建立執行這些任務的代碼,從而提高了工作的效率,有關 ActiveX 組件將在今後詳細討論。為了使用 ASP 辨別客戶瀏覽器,在這裡我們利用 "Browser Capabilities" 組件建立了一個 Browser Type 對象,該對象提供帶有用戶端網路瀏覽器功能說明的使用者指令碼,當瀏覽器串連到網路伺服器上時,它會自動發送一個 UserAgentHTTP 標題,該標題是一個聲明瀏覽器及其版本的 ASCII 字串。此 Browser Type 對象將該標題和在 Browscap.ini 檔案中的項進行比較 (Win98 、 IIS3 、 IIS4 的使用者分別可以在以下目錄中 "win98\system\inersrv" 、 "\winnt\system32\inetsrv\asp\cmpnts" 、 "\winnt\system32\inetsrv" 找到該檔案 ) 。如果找到匹配的項,則該 Browser Type 對象將認為瀏覽器列表屬性與 UserAgent 標題匹配。若該對象在 browscap.ini 檔案中找不到與該標題匹配的項,那麼將使用預設的瀏覽器屬性。若該對象既未找到匹配項且 browscap.ini 檔案中也未指定預設的瀏覽器設定,則它將每個屬性都設為字串 "UNKNOWN" 。我們可以通過更新 browscap.ini 檔案將屬性或新的瀏覽器定義添加到該組件中,從而擴大 ASP 識別的瀏覽器範圍和精確度。下面列出了 browscap.ini 中的一部分內容 ( 不包括注釋部分 ) :
[IE 4.0] ;;HTTPUserAgentHeader
browser=IE ;;指定該瀏覽器的名稱。
Version=4.0 ;;指定該瀏覽器的版本號碼。
majorver=4 ;;指定主要版本號
minorver=0 ;;指定副版本號碼
frames=TRUE ;;指定該瀏覽器是否支援架構。
tables=TRUE ;;指定該瀏覽器是否支援表格。
cookies=TRUE ;;指定該瀏覽器是否支援cookies。
backgroundsounds=TRUE ;;指定該瀏覽器是否支援背景音樂。
vbscript=TRUE ;;指定該瀏覽器是否支援VBScript。
javascript=TRUE ;;指定該瀏覽器是否支援JScript。
javaapplets=TRUE ;;指定該瀏覽器是否 支援 Java程式。
ActiveXControls=TRUE ;;指定該瀏覽器是否支援 ActiveX 控制項。
Win16=False ;; 指定該瀏覽器是否支援Win16
beta=False ;;指定該瀏覽器是否測試版。
cdf=True ;;指定該瀏覽器是否 支援用於 Web 預測的 Channel Definition Format。
;;ie 4.01
[Mozilla/4.0 (compatible; MSIE 4.01*; Windows 95)]
parent=IE 4.0 ;;父標籤允許第二個瀏覽器繼承第一個瀏覽器的定義
version=4.01
minorver=01
platform=Win98
;;Default Browser ;;
指
定預設的瀏覽器的設定
[Default Browser Capability Settings]
browser=Default
frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE
在上面的例子中,父標籤允許第二個瀏覽器繼承第一個瀏覽器的定義,以便 Microsoft Internet Explorer4.01 定義得以繼承 Microsoft Internet Explorer4.0 定義全部的屬性 ( 例如, frames=TRUE 、 tables=TRUE 以及 cookies=TRUE) 。並通過添加 platform=Win98 行來指定平台,用 version=4.01 重寫版本資訊。
在先前的 browser.asp 中我們僅僅是將客戶瀏覽器的屬性一一羅列了出來,下面讓我們添加一些動態效果。將以下代碼剪貼到檔案 browser.asp 中( 編輯注 :為顯示方便,所有“ < ”符號後都多加了個空格,實際使用時請注意去掉。 ):
< % if (bc.frames = TRUE) then %>
你的瀏覽器支援架構!< br>
< % else %>
難道現在你還在使用不支援架構的瀏覽器???< br>
< % end if %>
< % if (bc.tables = TRUE) then %>
你的瀏覽器支援表格。< br>
< % else %>
難道現在你還在使用不支援表格 的瀏覽器 ???< br>
< % end if %>
< % if (bc.BackgroundSounds = TRUE) then %>
有沒有聽到美妙的 音樂???< br>
< % else %>
可惜 , 您的瀏覽器不支援背 景音樂。< br>
< % end if %>
< % if (bc.vbscript = TRUE) then %>
您的瀏覽器支援Vbscript。< br>
< % else %>
您的瀏覽器不支援Vbscript。< br>
< % end if %>
< % if (bc.javascript = TRUE) then %>
您的瀏覽器支援 Javascript。< br>
< % else %>
您的瀏覽器不支援 Javascript。< br>
< % end if %>
在你的瀏覽器中重新整理 browser.asp ,程式將自動辨別瀏覽器的屬性並動態顯示不同的資訊。不難發現在整個 browser.asp 檔案中幾乎沒有用到任何複雜的編程,就輕而易舉達到了動態鑒別客戶瀏覽器並動態產生響應事件的效果。事實上,這個程式的關鍵就在於前文提到的 ActiveX 組件 --"Browser Capabilities" ,它的作用類似於一個 Function ,只需簡單地在程式中調用該組件即能達到你所希望的效果。
通過這兩篇對 ASP 的介紹,大家已經看到編寫 ASP 程式是相當輕鬆的,要掌握 ASP ,無非就是掌握 ASP 內建的五個對象,以及 ASP 提供的 ActiveX 組件的對象、方法和屬性,當然紮實的指令碼語言編寫能力也是必須的。在今後的課程中作者將用五到六篇的篇幅著重介紹這些內建對象和組件的作用及使用方法,敬請關注。