top
Loading...
ASP篇(一)

看了《如何令你的網站“動感十足”》一文后,是否令你怦然心動?是否已經急不可待地想構建屬于你自己的動態網站?本文將以 Active Server Pages 為中心,向你全面展示制作動態商業網站的步驟和技巧并通過大量的實例,讓你在不斷的理論和實踐之中笑傲“網絡”……

上一章給大家簡要介紹了建立動態網站的一些方法和制作工具,本章將以如何建立基于 IIS 的 ASP 動態網站為中心向大家一步一步地揭示動態商業網站設計的真正奧秘。為了使各位能夠全面、細致地掌握 ASP 的開發技巧,本文今后將采取連載的形式,手把手地教你如何建立屬于自己 ASP 動態網站。由于本文是作者根據自己的學習和實踐經驗并結合了一些外文資料而寫成的,因此不免會有一些偏頗,希望各位見諒。如發現本文有何不當之處,請及時通知作者,謝謝。

Microsoft Active Server Pages 即我們所稱的 ASP ,其實是一套微軟開發的服務器端腳本環境, ASP 內含于 IIS 3.0 和 4.0 之中 , 通過 ASP 我們可以結合 HTML 網頁、 ASP 指令和 ActiveX 元件建立動態、交互且高效的 WEB 服務器應用程序。有了 ASP 你就不必擔心客戶的瀏覽器是否能運行你所編寫的代碼,因為所有的程序都將在服務器端執行,包括所有嵌在普通 HTML 中的腳本程序。當程序執行完畢后,服務器僅將執行的結果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負擔,大大提高了交互的速度。 以下羅列了 Active Server Pages 所獨具的一些特點:
1. 使用 VBScript 、 JScript 等簡單易懂的腳本語言,結合 HTML 代碼,即可快速地完成網站的應用程序。
2. 無須 compile 編譯,容易編寫,可在服務器端直接執行。
3. 使用普通的文本編輯器,如 Windows 的記事本,即可進行編輯設計。
4. 與瀏覽器無關 (Browser Independence), 用戶端只要使用可執行 HTML 碼的瀏覽器,即可瀏覽 Active Server Pages 所設計的網頁內容。 Active Server Pages 所使用的腳本語言 (VBScript 、 Jscript) 均在 WEB 服務器端執行,用戶端的瀏覽器不需要能夠執行這些腳本語言。
5.Active Server Pages 能與任何 ActiveX scripting 語言相容。除了可使用 VBScript 或 JScript 語言來設計外,還通過 plug-in 的方式,使用由第三方所提供的其他腳本語言,譬如 REXX 、 Perl 、 Tcl 等。腳本引擎是處理腳本程序的 COM(Component Object Model) 物件。
6.Active Server Pages 的源程序,不會被傳到客戶瀏覽器,因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性。
7. 可使用服務器端的腳本來產生客戶端的腳本。
8. 物件導向( Object-oriented )。
9.ActiveX Server Components(ActiveX 服務器元件 ) 具有無限可擴充性。可以使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL 等編程語言來編寫你所需要的 ActiveX Server Component 。

ASP 的奇妙之處真是不勝枚舉,下面就請各位系好安全帶,我將帶領大家進入 ASP 的夢幻世界。

首先,讓我們來看看運行 ASP 所需的環境:

Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server
Microsoft Peer Web Services Version 3.0 on Windows NT Workstation
Microsoft Personal Web Server on Windows 95/98
正如前文所述,與一般的程序不同, .asp 程序無須編譯, ASP 程序的控制部份,是使用 VBScript 、 JScript 等腳本語言來設計的,當執行 ASP 程序時,腳本程序將一整套命令發送給腳本解釋器 ( 即腳本引擎 ) ,由腳本解釋器進行翻譯并將其轉換成服務器所能執行的命令。當然,同其他編程語言一樣, ASP 程序的編寫也遵循一定的規則,如果你想使用你所喜愛的腳本語言編寫 ASP 程序,那么你的服務器上必須要有能解釋這種腳本語言的腳本解釋器。當你安裝 ASP 時,系統提供了兩種腳本語言: VBsrcipt 和 JScript ,而 VBscript 則被作為系統默認的腳本語言。你也可以根據自己的喜好改變系統默認的腳本語言,關于如何改變系統默認的腳本語言請看《 在 ASP 中使用腳本語言》一文。

ASP 本身并不是一種腳本語言,它只是提供了一種使鑲嵌在 HTML 頁面中的腳本程序得以運行的環境。但是,要學好 ASP 又必須掌握它的語法和規則。現在就讓我們開始一步一步地認識并學習 Active Server Pages 。

ASP 程序其實是以擴展名為 .asp 的純文本形式存在于 WEB 服務器上的,你可以用任何文本編輯器打開它, ASP 程序中可以包含純文本、 HTML 標記以及腳本命令。你只需將 .asp 程序放在 WEB 服務器的虛擬目錄下(該目錄必須要有可執行權限),就可以通過 WWW 的方式訪問 ASP 程序了。要學好 ASP 程序的設計,必須掌握腳本的編寫,那么究竟什么是腳本呢?其實腳本是由一系列的腳本命令所組成的,如同一般的程序,腳本可以將一個值賦給一個變量,可以命令 WEB 服務器發送一個值到客戶瀏覽器,還可以將一系列命令定義成一個過程。要編寫腳本,你必須要熟悉至少一門腳本語言,如 VBScript 。腳本語言是一種介乎于 HTML 和諸如 JAVA 、 Visual Basic 、 C++ 等編程語言之間的一種特殊的語言,盡管它更接近后者,但它卻不具有編程語言復雜、嚴謹的語法和規則。如前所述 ASP 所提供的腳本運行環境可支持多種腳本語言,譬如: JScript 、 REXX 、 PERL 等等,這無疑給 ASP 程序設計者提供了廣泛的發揮余地。 ASP 的出現使得廣大 WEB 設計者不必在為客戶瀏覽器是否支持而擔心,實際上就算你 在同一個 .asp 文件中使用不同的腳本語言,你都無須為此擔憂,因為所有的一切都將在服務器端進行,客戶瀏覽器得到的只是一個程序執行的結果,而你也只需在 .asp 中聲明使用不同的腳本語言即可。下面是一個典型的在同一 .asp 文件中使用兩種腳本語言的例子:
< HTML>
< BODY>
< TABLE>
< % Call Callme %>
< /TABLE>
< % Call ViewDate %>
< /BODY>
< /HTML>
< SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Callme
Response.Write "< TR>< TD>Call< /TD>< TD>Me< /TD>< /TR>"
End Sub
< /SCRIPT>

< SCRIPT LANGUAGE=JScript RUNAT=Server>
function ViewDate()
{
var x
x = new Date()
Response.Write(x.toString())
}
< /SCRIPT>

這是各位在本文中接觸的第一個真正的 ASP 程序,千萬不要被“ < % %> ”符號搞糊涂,這其實是標準的 ASP 定界符,而“ < SCRIPT>< /SCRIPT> ”之間的就是腳本語言。 ASP 不同于腳本語言,它有自己特定的語法,所有的 ASP 命令都必須包含在 < % 和 %> 之內,如: < % test="English" %> , ASP 通過包含在 < % 和 %> 中的表達式將執行結果輸出到客戶瀏覽器 , 如: < % =test %> 就是將前面賦給變量 test 的值 English 發送到客戶瀏覽器中,而當變量 test 的值為 Mathematics 時 , 以下程序:
This weekend we will test < % =test %>.

在客戶瀏覽器中則顯示為:
This weekend we will test Mathematics.

學習 ASP 最好的方法莫過于親自動手編寫,為了在最短的時間內使各位掌握 ASP 的程序設計技巧,本文將采取實例分析法,通過一系列的實例讓各位在實踐中學習 ASP 。建立一個 ASP 頁面,你所需的只是打開一個文本編輯器,如: Notepad ,然后跟我開始動手編寫第一個 ASP 程序。下面我們將建立一個自動監測瀏覽時間并根據不同時段動態顯示不同頁面內容的 ASP 程序,請將以下代碼剪貼到你的文本編輯器中 , 并存為 test1.asp :
< html>
< body>
< FONT COLOR="Green">
< % If Time < #12:00:00# And Time >= #00:00:00# Then %>
早上好,今天天氣不賴啊 !
< % ElseIf Time < #19:00:00# And Time >= #12:00:00# Then %>
下午好 !
< % Else %>
哈嘍 ! 今晚你有沒有去 IRC 聊天 !
< % End If %>
< /body>
< /html>


將 test1.asp 保存在 WEB 服務器的虛擬目錄 ( 如: aspsamp/) 下,并在瀏覽器中用 HTTP 的方式進行瀏覽,如: http://yourcomputername/aspsamp/test1.asp ,你將會新奇地發現,你的頁面真的活起來了。雖然,這只是一個非常簡單的實例,而且這一功能完全可以通過 JavaScript 完成,但是不難發現使用 ASP 要比 JavaScript 簡潔、迅速得多,而且運用此法,你完全可以輕而易舉地令你的網頁在不同的時段展示不同的風格。此例中的“ Time ”實際上是一個 VBScript 內置的顯示系統當前時間的函數,由于系統默認的腳本語言是 VBScript ,因此當你在 ASP 命令中調用該函數時,腳本引擎會自動將其轉換成當前的系統時間。接下來我們將給 test1.asp 添加一點色彩,在 < body> 標識中添加“ bgcolor="< % =bgc %> ”即變為 < body bgcolor="< % =bgc %>"> ,并在 < body> 標記前添加如下語句:
< % If Time < #12:00:00# And Time >= #00:00:00# Then
bgc="silver"
ElseIf Time < #19:00:00# And Time >= #12:00:00# Then
bgc="navy"
Else
bgc="red"
End If
%>

如此一來,當用戶在不同的時段訪問你的頁面時,他們將會看到不同的頁面背景色。我們可以做的事情還有很多,譬如你想知道在凌晨至十二點之間瀏覽你頁面的客戶的姓名,并向他或她問好,那么下面的這段程序將能助你達成心愿。首先你需要在頁面中設置表單,將以下 HTML 代碼剪貼到“ < % If Time < #12:00:00# And Time >= #00:00:00# Then %> ”之后:

歡迎光臨我的主頁,請填寫以下信息 : < FORM METHOD="POST" ACTION="test1.asp">
< P>
First Name: < INPUT NAME="fname" SIZE="48">
< P>
Last Name: < INPUT NAME="lname" SIZE="48">
< P>
Title: < INPUT NAME="title" TYPE=RADIO VALUE="mr">Mr.
< INPUT NAME="title" TYPE=RADIO VALUE="ms">Ms.
< P>< INPUT TYPE=SUBMIT>< INPUT TYPE=RESET>
< /FORM>


然后在以上 HTML 代碼后面添加如下 ASP 命令: < %
title=request.form("title")
if title="mr" then
%>
歡迎您 Mr.< % =request.form("fname") %> 。
< % elseif title="ms" then %>
歡迎您 Ms.< % =request.form("fname") %> 。
< % else %>
< B>< font color=blue> 歡迎您 < % =request.form("fname")&" "&request.form("lname") %> 。 < /font>< /B>
< % end if %>


保存文件 test1.asp ,并在瀏覽器中以 HTTP 方式進行瀏覽,如果此時的系統時間在凌晨 0:00:00 和中午 12:00:00 之間的話,瀏覽器將顯示如下畫面:



這其實是一個在 Internet 和 Intranet 上常見的功能,即當用戶在瀏覽器端填寫完表單后,通過調用一個通用網關程序將用戶數據傳送到服務器,由服務器進行處理后再將結果返還給客戶瀏覽器。過去為了實現這樣的功能必須編寫一個獨立于 HTML 之外的 CGI 程序,并通過 HTML 進行調用,撇開 CGI 編寫復雜等缺點不談, CGI 的執行效率也是一個大問題,每一個表單 (form) 均須執行一個可執行文檔,當多人同時上線使用時,多個文檔同時執行,將大大降低 WEB 服務器的執行速度,如今 ASP 提供了與 HTML 完全相融的編程環境,顯然要比使用 CGI 便捷得多。

在本期的最后讓我們再來看看 ASP 的循環功能,譬如你希望當客戶在晚間 7:00 至凌晨 0:00:00 瀏覽你的頁面時,在頁面中央顯示 6 個笑臉 表示問候,那么你只需要將以下命令剪貼到“ Good Evening! ”后面即可: < % for i=1 to 6 %>
< p>< center>< img src="smile.gif" width="32" height="32" alt=" 晚上好 ">< /p>
< % next %>

這是一個最最基本的循環語句,它將一個笑臉圖片重復調用六次并顯示在頁面上。當然此例的效果完全可以用 HTML 做到,但是不難發現使用 ASP 大大縮短了代碼的重復編寫,使得程序具有良好的可閱讀性。另外,當你制作一個諸如根據用戶投票來給所評測的對象評定星級的評測站點時,使用此法,你就完全不需要為每一個星級制作一幅圖片。如果一個對象被評為 4 星級,那只需將一顆星的圖片循環顯示 4 次,以此類推即可。當然,當工作量較小的時候你不會感覺到 ASP 的好處,然而一旦數據量巨增,你將會深刻的體會到 ASP 動態網站給你帶來的前所未有的輕、爽感受 !

(待續未完)
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗