各位“發燒級網蟲”,你是否正在絞盡腦汁地完善自己的網頁?你是否正費勁心思想要搞一個CGI程式?看到別人利用FOXWeb技術開發基於WWW的資料應用系統,你是否早已垂涎三尺?不用慌,我們將為大家提供最前沿的動態網頁技術。今天為大家請來INTRANET&ASP網站負責人LWW(地道的中國人喲)為大家先上一堂ASP基礎課,包括最基礎的互動介面設計及大家最關心的資料庫訪問技術,一起來看看吧。
Active Server Pages (ASP,動態網頁)是微軟公司推出的一種用以取代CGI(通用閘道介面,Common Gateway Interface)的技術。微軟發布Win98時,同時推出了PWS4.0(個人WEB伺服器,可在Win98光碟片裡的ADD-ONS目錄裡找到),它本身支援對ASP2.0的解釋執行,所以大家不用去找免費的伺服器就可以體驗一下ASP的簡單和方便了。
簡單講,ASP是位於伺服器端的指令碼運行環境,通過這種環境,使用者可以建立和運行動態互動式 Web 服務器應用程式,如互動動態網頁,包括使用 HTML 表單收集和處理資訊,上傳與下載等等,就像使用者在使用自己的CGI程式一樣。但是他比CGI簡單。更重要的是,ASP使用的ActiveX技術基於開放設計環境,使用者可以自己定義和製作組件加入其中,使自己的動態網頁幾乎具有無限的擴充能力,這是傳統的CGI等程式所遠遠不及的地方。使用ASP還有個好處,就在於ASP可利用ADO(Active Data Object,微軟的一種新的資料訪問模型,類似於DAO)方便地訪問資料庫,從而使得開發基於WWW的應用系統成為可能。
如何使用ASP?
還是讓我們以一個例子來說明吧。我看到許多講語言的書上都是以“Hello World”作為第一個例子,那麼,就讓我們也向世界問一聲好吧。
第一步:開啟一個文字編輯器(比如,Notepad),輸入以下代碼:
<% For i=3 To 7 %>
<FONT SIZE=<%=i %>>
Hello World!<BR>
<% Next %>
然後以檔案名稱Hello.asp存檔。由於.asp檔案要由伺服器端的ASP環境來解釋,所以——
第二步:你必須將它放在WWW伺服器的目錄下。在安裝了PWS的Win98系統裡,預設路徑是c:Wroot,你也可以自己建一個子目錄,比如“asp”。
第三步:開啟瀏覽器,輸入 http://yourservername/asp/Hello.asp,瀏覽器上立即顯示“Hello World”,就這麼簡單。
現在,讓我們回過頭來分析一下上面的指令碼,你會發現同HTML指令碼比較,它多了兩個符號<%和%>,這就是ASP的定界符,他將一般的HTML指令碼同ASP代碼分隔開來,中間的代碼就是ASP“語言”,大家一定已經看到,他的文法跟Visual Basic差不多。ASP的指令碼語言可以是任何Script語言,不過你得提供相應的引擎。ASP本身支援VBScript 和JavaScript,可以由你決定使用哪一種。你只需在使用ASP指令碼前用一句<Script LANGUAGE=“VBScript” RUNAT=“Server”>或者<ScriptLANGUAGE=“JavaScript” RUNAT=“Server”>就行了。預設語言是VBScript,微軟的嘛。
那麼,asp的執行是怎樣一個過程呢?當你從瀏覽器輸入了.asp檔案的地址後,瀏覽器就將這個URL請求發給伺服器,如果伺服器上裝了ASP,他一看到是.asp尾碼名,就調用ASP。ASP讀出相應.asp檔案,解釋並執行命令後,將結果回傳給WWW伺服器,然後,WWW伺服器再把結果發給瀏覽器。瀏覽器看到的是執行結果,他根本不知道.asp檔案是怎麼回事,因此,使用ASP不必考慮瀏覽器的差異。
使用者提交ASP檔案過程
讓ASP與Form一起工作
我們說ASP的目的是能讓使用者與頁面之間交換資訊,那麼,怎樣得到使用者輸入的這些資訊呢?當然是用Form(表單)。不論是CGI、IDC、JAVA,還是其他的什麼技術,都是通過嵌在WWW頁面中的Form來讓瀏覽器的使用者輸入資訊,然後由Form執行提交動作,把資料傳給伺服器,伺服器再把資料傳給CGI或是其他的什麼程式。既然Form如此重要,那麼這次就讓我們來看一看在ASP中,怎樣獲得使用者在Form中輸入的資料,同時,我們還將學到ASP是怎樣將結果返回到WWW頁面的。
首先,我們建立一個Form,他的HTML代碼如下:
<HEAD><TITLE>定單</TITLE></HEAD>
<BODY>
<H2>定單Form例子</H2>
<P>請向我們提供以下資訊,然後單擊“提交”:
<FORM METHOD=“POST” ACTION=“response.asp”>
<P>姓: <INPUT NAME=“fname” SIZE=“48”>
<P>名: <INPUT NAME=“lname” SIZE=“48”>
<P>稱呼: <INPUT NAME=“title” TYPE=RADIO VALUE=“先生”>先生
<INPUT NAME=“title” TYPE=RADIO VALUE=“女士”>女士
<P><INPUT TYPE=SUBMIT VALUE=“提交”><INPUT TYPE=RESET VALUE=“清除”>
</FORM>
</BODY>
這個表單是一個簡單的定單例子,它接收使用者輸入的姓名,稱呼,然後用POST方法將資料提交。我們知道,在HTML中表單(Form)提交資料常有兩種方法,一種是GET,一種是POST。對於GET提交的資料,WWW伺服器將把資料放在環境變數QUERY_STRING中;對於POST方法,資料被送到WWW伺服器的STDOUT中,然後CGI從自己的STDIN中讀取。使用傳統的CGI方法,使用者必須自己編程來處理這些資料。可是在ASP中,採用了物件導向的思想,所有從瀏覽器傳來的資料都被封裝進了對象Request中。Request有方法Form和Querystring,分別返回用POST方法和GET方法提交的資料。我們要得到表單提交的資料,只需用Request.Form(“表單網域名稱”) 或Request.Querystring(“查詢參數名”) 就可以了。
好了,接下來就讓我們建立.asp檔案Response.asp來處理上面的表單提交的資料吧,這裡,我們只是簡單地將使用者提交的資料返回給使用者。
<%Title=Request.Form(“title”)
LastName=Request.Form(“lname”)
If Title=“先生” Then %>
<%=LastName %> 先生
<% ElseIf Title=“女士” Then %>
<%= LastName %> 女士
<% Else &>
<%=Request.Form(“fname”) & “ ” & LastName %>
<% End If %>
上面這段代碼有些難懂吧, 我們來分析一下它吧.首先,他的開頭和結尾都和普通的HTML代碼沒有什麼兩樣,關鍵是中間.如果略去定界符<%和%>,然後在前面沒有東西的等號前加上‘Print’ ,它就變成了:
Title=Request.Form(“title”)
LastName=Request.Form(“lname”)
If Title=“先生” Then
print LastName 先生
ElseIf Title=“女士” Then
print LastName 女士
Else
print Request.Form(“fname”)&“ ”& LastName
End If
這是不是VB?很簡單吧?ASP就是應用這種方法,將使用者自己編寫的程式鏈入HTML中,使動態網頁得以實現。
有一點說明的是,.asp檔案中,不在
[1] [2] 下一頁