ASP實用大全-ASP基礎(4)
發表時間:2024-02-09 來源:明輝站整理相關軟件相關文章人氣:
[摘要]VBScript及表單 一、什么是VBScript? VBScript是Microsoft Visual Basic Scripting Edition的簡稱,你可以把它當作是Visual Basic的一個子集,但是這僅僅是從語法上來說的,正如JavaScript和JAVA的關系一...
VBScript及表單
一、什么是VBScript?
VBScript是Microsoft Visual Basic Scripting Edition的簡稱,你可以把它當作是Visual Basic的一個子集,但是這僅僅是從語法上來說的,正如JavaScript和JAVA的關系一樣,VBScript和Visual Basic并沒有什么本質上的聯系。它是一種腳本語言,由VBScript腳本引擎(其實是一個動態連接庫VBScript.dll)解釋執行。目前它主要用在WWW網頁(只有IE能正確查看包含VBScript腳本的網頁,如果Netscape要正確查看,則必須安裝一個插件)以及微軟的WWW服務器IIS支持的ASP。
VBScript的語法這里就不再贅述,請讀者參考其它書籍。
二、ASP的輸出
像所有講編程的教材一樣,讓我們以“Hello World”開始吧。假設我們要在網頁里輸出“Hello World”,在HTML里是很簡單的事,在ASP中怎么做呢?請看下例:
<%Response.Write ″Hello World″%>
把它存成一個ASP文件,執行后輸出的效果如圖1。
這里我們使用了Response對象的Write方法。Response對象是ASP內置對象之一,也就是說,我們無需創建它就可以直接使用。ASP一共內置了6個對象,它們是Server、Err、Application、Session、Request、Response,關于它們的屬性和方法,大家可以參考IIS或PWS的幫助文檔。
下面是另一種輸出的方法:
<%=″Hello World″%>
這種語法是在ASP中特有的,它的意思是直接把等號“=”后面的內容輸出到瀏覽器。
接下來讓我們看一個稍復雜的例子:
<script language=″VBScript″ runat=″server″>
response.write(″1″)
</script>
<%response.write(″2″)%>
<%=″3″%>
<script language=″jscript″ runat=″server″>
response.write(″4″);
</script>
大家可能奇怪,怎么這回不像以前的寫法了呢。前面說過,ASP的代碼應該是用<%和%>括起來的呀。其實,只要在<Script>標簽里加上runat=″Server″,那么,WWW服務器在遇到包含Runat=″server″的script語句時,會在服務器端對script進行解釋,runat=″Server″的作用也就跟<%%>;相同了。而且 只是一種腳本環境,至于你要用什么腳本語言編程,那是你自己的選擇。在ASP安裝時,已經帶有VBscript和JScript的腳本引擎。缺省地,使用VBScript作為腳本語言,不過你也可以用language屬性指定你所用的腳本語言。如上例,你可以在一個ASP文件中使用多種腳本語言。
現在我要考考你了,上例的輸出結果是什么呢?“1234”嗎?你試一試。輸出的竟然是“4231”!原來,IIS處理ASP文件時,總是把文件依次交給系統上安裝的所有腳本引擎,而JScript的順序在VBScript前面。這就是“4”輸出在最前面的原因。然后,另一條規則是,在$#@60;script$#@62;括起來的代碼和<% %>括起來的代碼間,<% %>括起來的總是先被處理。而Response.Write 和“=”則沒有先后順序,按照出現的順序處理。這就是“23”在“1”前面的道理。
三、取得表單提交的內容
我們在網上沖浪的時候,經常會看到有些網頁中有些輸入框以及按扭。當在輸入框中輸入一些內容比如姓名,然后按下按扭時,我們所輸入的內容就會被瀏覽器傳到服務器上去。網頁中的那些同我們交互的東西就組成了一個表單,在HTML里用標簽<form>標識。表單總是被提交給一個處理程序,這個處理程序可以是CGI,也可以是ASP。用過CGI的朋友可能知道,在CGI中為了取出用戶在表單中的輸入信息是件很麻煩的事情,甚至有人專門寫了例程來完成這件事情。然后,處理程序又將輸出一些提示信息,向用戶報告處理結果。從而完成一個交互過程。在ASP中,所有這些操作變得很簡單了。請看下面的例子。
假設服務器上有一個文件form.htm,它只包含一個表單(圖2),源代碼如下:
<html>
<body>
<form method=″post″ action=″test.asp″>
姓名:<input type=″input″ name=″xm″>
<@60;input type=″submit″ value=″確認″>
</form>
</body>
</html>
點擊“確認”鍵后,表單將請求test.asp處理表單值。我們的test.asp代碼為:
<%
dim a
a=Request.Form(″xm″)
Response.Write a
%>
它將在瀏覽器端顯示出我們輸入的“張三”字樣。
這里用到了Request對象,在這個對象中保存了所有由form提交過來的數據,它們以集合的形式存在,可以通過元素名取出其中的值。然后我們的程序把它輸出到瀏覽器。真的要感謝對象,它們幫我們做了一切,我們只需要簡單地取用就可以了。當然我們也可以讓test.asp做更復雜的事,例如將輸入的姓名存儲在服務器中的數據庫里,或者檢查此人是否有訪問下一頁面的權利等。
好了,我們終于可以用ASP做具有交互性的網頁了,而且它是如此地簡單。在下一講中,我們將接觸Internet上最普通的應用所需要的操作——數據庫操作。