?? 16-4.cfm.htm
字號:
<html>
<head>
<title>Active Server Pages是怎樣工作的?</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
</head>
<body>
<b><font SIZE="5">
<p ALIGN="JUSTIFY">不利用</font><font FACE="宋體" SIZE="5">Cookie</font><font
SIZE="5">來保持信息</p>
</font></b><font SIZE="3">
<p ALIGN="JUSTIFY">其實這部分也是老調重彈,前面章節已經介紹過</font><font
FACE="宋體" SIZE="3">QueryString</font><font SIZE="3">字段的使用及接收,以及</font><font
FACE="宋體" SIZE="3">Form</font><font SIZE="3">的接收,其實這兩種手段也可以進行一些信息保存,最后我們會對這三種方案進行綜合比較。</p>
</font><b>
<p ALIGN="JUSTIFY">利用<font FACE="宋體">QueryString</font>來保持信息</p>
</b><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">第</font><font FACE="宋體" SIZE="3">15</font><font
SIZE="3">章中有關小節有所介紹,由于你可以在連接中添加任何</font><font
FACE="宋體" SIZE="3">QueryString</font><font SIZE="3">字段,那么,只要你在網站的所有連接中添加一個保存用戶某種信息的字段,再在各個程序上進行相應處理,就可以進行模擬的跟蹤,如下例:</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE>Query</font><font SIZE="3">字段進行信息保留</font><font
FACE="宋體" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Username=Server.URLEncode(</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Bill Gates</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">)</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><A Href=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">/nextpage.asp?<%=UserName%></font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">></font><font SIZE="3">點擊這里</font><font
FACE="宋體" SIZE="3"></a></p>
<p ALIGN="JUSTIFY"></BODY></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">這個腳本將</font><font FACE="宋體"
SIZE="3">Bill Gates</font><font SIZE="3">賦值給</font><font FACE="宋體" SIZE="3">Username</font><font
SIZE="3">的變量,然后將它通過</font><font FACE="宋體" SIZE="3">QueryString</font><font
SIZE="3">傳遞給</font><font FACE="宋體" SIZE="3">nextpage.asp</font><font SIZE="3">,那么在</font><font
FACE="宋體" SIZE="3">Nextpage.asp</font><font SIZE="3">中你就可以接受然后繼續進行這個參數的傳遞。例如:下面就是</font><font
FACE="宋體" SIZE="3">Nextpage.asp</font><font SIZE="3">的一個示例:</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE>Next Page</TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Username=Server.URLEncode(</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Request.QueryString(</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">))</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><A HREF=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">/thirdpage.asp?<%=Username%></font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">></font><font SIZE="3">點擊這里</font><font
FACE="宋體" SIZE="3"></a></p>
<p ALIGN="JUSTIFY"></body></p>
<p ALIGN="JUSTIFY"></html></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">這個優點是顯然適用于任何瀏覽器,但是必須承認,這樣傳遞來保存信息實在太麻煩了,所有的連接都要考慮到,每一個</font><font
FACE="宋體" SIZE="3">Active Server Pages</font><font SIZE="3">都必須相應處理一下,</font><font
FACE="宋體" SIZE="3"> </font><font SIZE="3">而且用戶很可能‘一不小心’就溜出了這種跟蹤之外。修改起來也過于麻煩。</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">另一個缺點是針對不同的瀏覽器必須考慮長度限制,前面章節介紹過這種限制,現在有的瀏覽器對于過長是截取信息,有的則干脆報錯,不過相信這都不是你所希望的。同時安全性沒有保證。</p>
</font><b>
<p ALIGN="JUSTIFY">利用<font FACE="宋體">Form</font>的<font FACE="宋體">hidden</font>類型進行信息傳遞</p>
</b><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果你確實需要傳遞大量信息而又不想選用</font><font
FACE="宋體" SIZE="3">Session</font><font SIZE="3">變量,那么您別無選擇只有利用</font><font
FACE="宋體" SIZE="3">Form</font><font SIZE="3">的</font><font FACE="宋體" SIZE="3">Hidden</font><font
SIZE="3">類型。正如下例:</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE>Form</font><font SIZE="3">傳參示例</font><font
FACE="宋體" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Username=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">Bill
Gates</font><font SIZE="3">”</font><font FACE="Tms Rmn" SIZE="3"></p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><FORM METHOD=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">/nextpage.asp</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><INPUT Name=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> TYPE=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">HIDDEN</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3"> VALUE=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"><%=Username%></font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><input type=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">submit</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> name=</font><font
SIZE="3">”下一頁”</font><font FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"></Form></p>
<p ALIGN="JUSTIFY"></Body></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">這個主頁包括一個</font><font
FACE="宋體" SIZE="3">HTML Form</font><font SIZE="3">。其中有一個隱含類型名字為</font><font
FACE="宋體" SIZE="3">Username</font><font SIZE="3">,</font><font FACE="宋體"
SIZE="3"> </font><font SIZE="3">同時賦予</font><font FACE="宋體" SIZE="3">Username</font><font
SIZE="3">變量的值。這個</font><font FACE="宋體" SIZE="3">Form</font><font
SIZE="3">也有一個</font><font FACE="宋體" SIZE="3">Submit</font><font SIZE="3">按鈕。當按鈕點擊后,在</font><font
FACE="宋體" SIZE="3">hiden</font><font SIZE="3">類型中存放的</font><font
FACE="宋體" SIZE="3">Username</font><font SIZE="3">的值將傳遞到下一個主頁上。在下一個主頁進行處理,然后以同樣方式傳遞到另外一個新的主頁上,下面是</font><font
FACE="宋體" SIZE="3">nextpage.asp</font><font SIZE="3">的例子:</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">下一頁</font><font
FACE="宋體" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Username=Request.Form(</font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">)</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><FORM METHOD=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">/thirdpage.asp</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><input name=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> Type=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">hidden</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3"> Value=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"><%=Username%></font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><input type=submit value=</font><font SIZE="3">”再下一頁”</font><font
FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"></Form></p>
<p ALIGN="JUSTIFY"></Body></p>
<p ALIGN="JUSTIFY"></Html></p>
</font><b>
<p ALIGN="JUSTIFY">方法結合</p>
</b><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">這兩種方法實現起來都十分麻煩而且頗為”費力不討好”,但是,如果偏要不用</font><font
FACE="宋體" SIZE="3">Cookies</font><font SIZE="3">和</font><font FACE="宋體" SIZE="3">Session</font><font
SIZE="3">變量來傳遞信息,確實也別無良策。同時,這兩種方法確實可以適用于任何瀏覽器。</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">請注意,如果在任意一頁中沒有進行這種</font><font
FACE="宋體" SIZE="3">QueryString</font><font SIZE="3">字段或者</font><font
FACE="宋體" SIZE="3">hidden</font><font SIZE="3">類型的</font><font FACE="宋體"
SIZE="3">Form</font><font SIZE="3">的處理,那么這種跟蹤就停止了,不管這是你希望的還是程序上不小心造成的。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">一個十分顯著的缺點是不管利用</font><font
FACE="宋體" SIZE="3">QueryString</font><font SIZE="3">字段還是利用</font><font
FACE="宋體" SIZE="3">Hidden Form</font><font SIZE="3">傳遞</font><font FACE="宋體"
SIZE="3"> </font><font SIZE="3">信息,安全性都是毫無保證的,這是由于瀏覽器對信息的接受是在幾乎毫無屏障的情況下進行的。</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">你完全可以將這兩種方法結合起來,而在接受時可以沒有任何區別,這里面補充的是,對于</font><font
FACE="宋體" SIZE="3">Response</font><font SIZE="3">對象,可以不指定</font><font
FACE="宋體" SIZE="3">Form</font><font SIZE="3">集合和</font><font FACE="宋體"
SIZE="3">QueryString</font><font SIZE="3">集合來進行接受,這時系統會自動辨認。見下面這個例子:</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"><HTML></p>
<p ALIGN="JUSTIFY"><HEAD><TITLE></font><font SIZE="3">下一頁</font><font
FACE="宋體" SIZE="3"></TITLE></HEAD></p>
<p ALIGN="JUSTIFY"><BODY></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">Username=Request(</font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">)</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><!---</font><font SIZE="3">注:就是上面這個腳本,</font><font
FACE="宋體" SIZE="3">QueryString</font><font SIZE="3">和</font><font FACE="宋體"
SIZE="3">hidden</font><font SIZE="3">的</font><font FACE="宋體" SIZE="3">Form</font><font
SIZE="3">都可以正確接收</font><font FACE="宋體" SIZE="3">---></p>
<p ALIGN="JUSTIFY"><Form Method=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Post</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> Action=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">/nextpage.asp</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><input name=</font><font SIZE="3">”</font><font FACE="宋體"
SIZE="3">Username</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> Type=</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">Hidden</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3"> Value=</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"><%=Username%></font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"><input type=Submit value=</font><font SIZE="3">”下一頁”</font><font
FACE="宋體" SIZE="3">></p>
<p ALIGN="JUSTIFY"></FORM></p>
<p ALIGN="JUSTIFY"><a href=/nextpage.asp?<%=ServerURLEncode(Username)%></font><font
SIZE="3">點擊這里</font><font FACE="宋體" SIZE="3"></a></p>
<p ALIGN="JUSTIFY"></BODY></p>
<p ALIGN="JUSTIFY"></HTML></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">在這個例子中,變量</font><font
FACE="宋體" SIZE="3">Username</font><font SIZE="3">被賦值而無須知道上一頁是利用的</font><font
FACE="宋體" SIZE="3">Hidden form</font><font SIZE="3">域</font><font FACE="宋體"
SIZE="3"> </font><font SIZE="3">還是</font><font FACE="宋體" SIZE="3">QueryString</font><font
SIZE="3">來傳遞參數。在以后編制</font><font FACE="宋體" SIZE="3">Active
Server Pages</font><font SIZE="3">時,這種</font><font FACE="宋體" SIZE="3">
Request(</font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Username</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">)</font><font SIZE="3">形式的簡易調用將十分常用。</p>
</font><font SIZE="5"><b>
<p ALIGN="JUSTIFY">總結</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">在這章里面,你應當學到了怎樣利用</font><font
FACE="宋體" SIZE="3">Sessions</font><font SIZE="3">進行信息處理,首先你學到的是創建一個</font><font
FACE="宋體" SIZE="3">Session</font><font SIZE="3">和用它在多主頁間存儲和傳遞信息,同時你應當掌握在</font><font
FACE="宋體" SIZE="3">Session</font><font SIZE="3">開始和結束時創建相應腳本程序,這樣做對于進行統計太重要了。同時,你還學會了和</font><font
FACE="宋體" SIZE="3">Session</font><font SIZE="3">密切相關的,創建和讀取</font><font
FACE="宋體" SIZE="3">Cookies</font><font SIZE="3">信息。最后,對于那些實在不愿意使用</font><font
FACE="宋體" SIZE="3">Session</font><font SIZE="3">和</font><font FACE="宋體" SIZE="3">Cookie</font><font
SIZE="3">的人們提供了一些替代手段的介紹和討論。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -