在上一篇中作者給大家詳細介紹了 ASP 內建對象之一 Request 的使用方法,相信各位通過一系列的實踐已經能夠熟練掌握,本篇將繼續給大家介紹 ASP 的另一個內建對象 Response。 最近,有很多朋友來“妹兒”催我加快 ASP 篇一文的寫作速度,並急切地詢問哪裡有關於 ASP 的教材。我深深地被大家的學習熱情所打動,因此決定將自己平時所搜集的一些 ASP 資訊資料拿出來和大家共用,也希望所有的朋友能慷慨地將自己搜集的有關 ASP 的資料告訴作者,謝謝。由於目前國內有關 ASP 的中文教材鳳毛麟角,而專門針對 ASP 網站開發的中文教材作者更是聞所未聞(可能是作者孤陋寡聞),只是最近聽說出了一本清華大學出版社出版的關於 MS InterDev 的傻瓜書,其中有 ASP 的教學,和一本 Active Server Page 2.0 的中文手冊,因此目前作者還是主要通過國外網站來擷取 ASP 的有關資訊和資料,這也是作者寫本文的一個主要原因。下面我就將 bookmark 中的一些較經典的 ASP 網站羅列出來:
1、http://www.activeserverpage.com/
這是作者訪問最頻繁的 ASP 網站,也是世界上最大最全的關於 ASP 的網站之一,它裡面不但有最新的 ASP 文獻資料,免費組件,還有一本完整的 ASP 入門教材,它更是 ASP 網站的中樞網站,通過它你可以到達無數的 ASP 相關網站。
2、http://www.asphole.com/
這本是一個針對 ASP 漏洞而建立的網站,但是它卻無疑是一個完備的 ASP 資訊網站,它非但提供了 ASP 的文章,及組件還提供詳盡透徹的聯結地址。
Expires 屬性指定了在瀏覽器上緩衝儲存的頁距到期還有多少時間。如果使用者在某個頁到期之前又回到此頁,就會顯示緩衝區中的頁面。如果設定 response.expires=0,則可使緩衝的頁面立即到期。這是一個較實用的屬性,當客戶通過 ASP 的登陸頁面進入 WEB 網站後,應該利用該屬性使登陸頁面立即到期,以確保安全。
至此,我們已經學習的 Response 對象的所有屬性、方法和集合的理論知識,下面作者將給大家示範一段簡單的程式,通過實踐讓大家加深理解。先將以下程式剪貼到記事簿中,並儲存為 asp7.asp。( 注意將 < 和 % 之間的空格去掉 !!!)
< %
Dim user
Dim flag
Dim pwd
Dim say
Response.buffer=true ' 開啟緩衝頁面功能
Response.ContentType="text/HTML"
Response.Charset="gb2312"
user=Request.Form("username")
pwd=Request.Form("password")
say=Request.QueryString("say")
%>
< form method="POST" action="asp7.asp">
< p> 使用者名稱 :< input type="text" name="username" size="12">< br>
口 令 :< input type="password" name="password" size="12">< br>
< input type="submit" value=" 提交 " name="B1">< input type="reset" value=" 取消 " name="B2">< /p>< /form>
< %
If say=1 then
Response.Write " 歡迎書生大駕光臨 !"
End If
If say > 1 then
Response.Write " 歡迎再次光臨書生的 ASP 網站 !"
End If
If user="Adm" and pwd="shusheng" Then
Response.Expires=1 ' 設定該頁面在瀏覽器的緩衝中儲存 1 分鐘後到期。
flag=1
ElseIf user="guest" and pwd="guest" Then
Response.Expires=0 ' 使緩衝的頁面立即到期。
Response.Clear ' 清空儲存在緩衝中的頁面
flag=2
ElseIf user="vip" and pwd="vip" Then
Response.Write " 歡迎 VIP 光臨書生的 ASP 網站 "
flag=3
Else
flag=0
Response.End ' 立即停止指令碼處理,並將緩衝中的頁面輸出
End If
Response.write "< p>< a href='asp7b.asp?flag="&flag&"'> 動態網站設計十八般武藝 --ASP 篇 (7) 實踐練習 < /a>&l; /p>"
' 將變數 flag 的值傳送給 asp7b.asp
%>
< p> 動態網站設計十八般武藝 --ASP 篇 (7) 實踐練習 < /p>
再將以下程式儲存為 asp7b.asp。
< %
Dim saysay=Request.QueryString("flag")
Select case say
case "1"
Response.Redirect "asp7.asp?say=1"
case "2"
Response.Redirect "asp7.asp?say=2"
case "3"
Response.Redirect "asp7.asp?say=3"
case "0"
Response.Redirect "asp7.asp?say=0"
End Select
%>
將這兩個程式放在有執行許可權的 WEB 虛擬目錄下,並以 http 方式訪問 asp7.asp。在這兩個程式中我們充分運用了至今為止所學過的兩個 ASP 內建對象 :Request 和 Response。當你第一次訪問 asp7.asp 檔案時,頁面上出現一個 Form 並提示輸入使用者名稱和口令,如果你輸入使用者名稱 :Adm、口令 :shusheng, 則會出現如下頁面 :
<img src='http://edu.cnzz.cn/Article/UploadFiles/200492073054734.gif'>
這是為什麼呢?因為我們設定了頁面緩衝,當使用 guest 登陸時,判斷程式自動清空其之前所有儲存在緩衝中的頁面,而僅將其後指令碼程式執行的結果顯示出來。
那為什麼第一次登陸 asp7.asp 頁面時僅僅只顯示一個 Form 對話方塊呢?因為此時程式判斷到使用者既非 Adm, 也不是 guest 和 vip,所以執行 Response.End, 立即將儲存在緩衝中的 Form 顯示出來,並停止其後的一切指令碼處理,包括純 HTML 程式碼的顯示。
大家現在都看到了我們僅僅用了兩個很簡單的程式,就可以做到對同一個頁面的多種不同顯示結果,這正是 ASP 的魅力所在,各位可以以此示範程式為基礎,來進行一些改動,以熟練掌握我們所學的這兩個內建對象。今天的課程就到此為止了,在結尾我還要說明兩件事。第一,很多朋友來信詢問哪裡可以看到 ASP 篇的前幾篇文章,請大家點擊 此處 便可以找到。第二,一些朋友反映文中的 ASP 程式不能運行,這主要是因為 Chinabyte 的頁面都是用資料庫產生的,它限定在文章中不能使用帶 HTML 或 ASP 格式的代碼,所以在所有 < 符號後都加了空格,各位只要將 < 後的空格去掉就可以運行程式了,切記。下一篇我們將繼續學習另一個 ASP 內建對象,敬請關注。