標題標題  顯示論壇會員列表名單  搜索論壇搜索  HelpHelp
  注冊注冊  登入登入
ASP教學區
 DoReMe : ASP教學區
主題 話題: 第十四章 單獨利用Active Server Pages 回復發表新主題
作者
貼子內容 << Prev Topic下一個主題 >>
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:34上午 | IP記錄 引用 bibi

這章詳細的介紹了怎樣單獨利用Active Server Pages進行工作處理。首先是瀏覽一下request和response對像, 在第二部分,你將學會怎樣緩衝的來輸出你的Active Server Pages。第三部分介紹了一些怎樣來進行長時間運行腳本以及非常大的主頁。最後你會學會處理Headers以及server端 變量的方法。

Request和Response對像

這部分講述request 和response對象。這兩個對象是你在使用Active Server Pages時最常用的,為了更好掌握,你首先需要瞭解一些如下的有關HTTP協議的背景知識。

HTTP協議

World Wide Web真正是怎樣工作的?當你在瀏覽器的地址攔中敲入正確的網頁地址,如果順利的話,網頁就顯示出來。這一切在後台是怎樣發生的 呢?

當你瀏覽器在從一個網站接受到HTML文件,那麼就會使用Hypertext Transfer Protocol(HTTP).(超文本鏈接傳輸協議)。這個協議限定了哪些信息可以在網絡之間傳送。通常,這種協議限定了瀏覽 器和網站之間交互的方式。

注意

目前大部分瀏覽器以及網站支持HTTP1.0協議,不過,Interenet Information Server也支持HTTP1.1協議,HTTP1.1比HTTP1.0快很多,因為它支持持續連接以及管線連通。如果想要瞭解 更多,請參看Http://w3.org

當你從一個網站上接受到主頁後,你的瀏覽器就建立了一個到網站的連接並發出一個請求,網站接受請求後發出一個響應,因此,HTT P協議也叫做請求響應協議。

所有的從瀏覽器到網站間的通訊都是分開的請求和響應對,瀏覽器總是通過發送請求初始化這種通訊過程,因此網站十分被動的由這些請 求觸發來作出響應。

瀏覽器請求為這種結構:一個請求信息包括請求行、頭域,以及或者的信息體。最普遍的一個簡單的主頁請求信息如下例:

GET /index.cfm HTTP/1.1

Host: www.magicw3.com

這個請求信息是從www.magicw3.com站點上請求index.cfm文件。第一行中,限定了請求的方式、資源名稱以及所使用的HTTP協議版本。

在這個例子中,請求的方式是GET。GET方式是接受一個特定的資源,在這裡,GET用來接受Index.cfm文件。其他的請 求方式包括POST, HEADER, OPTIONS, DELETE, TRACE, 以及PUT。通常只是使用GET 和POST, 其中POST方式主要用來接受HTML的FORM中的內容。

例子的第二行是header,主要是限定了資源的網絡地址,在這裡這個地址市:www.magicw3.com

特別的,一個請求也會包含多個header,Headers提供了一些針對於請求的附加信息或者請求的起源,有些Headers 是標準的,但是也有瀏覽器限定的,本章最後部分專門討論這種問題。

一個請求也可能包括信息體,例如,你使用POST方式來傳輸FORM中的內容時,當你點擊submit按鈕並且使用的是acti on=post,那麼你在form中添入的內容就會通過請求的信息體發送到網站上。

網站在接受到請求後就會發送一個響應,響應結構為,每個響應都有一個狀態行,包括headers的數量以及可選擇的、也許還有個 信息體。

你也許已經很熟悉這個狀態行了。如果你輸入錯了一個網絡地址,你的瀏覽器上會顯示HTTP Error 404,這就是那個狀態行(見圖14.1),狀態行包括所用協議,狀態代碼,以及文本信息(問題原因等),例如:網站接受的請求 如果有問題,那麼它響應的狀態行中就返回一個錯誤信息以及原因,如果成功接受請求,則返回200 ok.

注意

狀態行和瀏覽器底下的狀態條絕對是兩碼事,一般情況下,你是看不到狀態行的,通常瀏覽器接受到錯誤信息後會在瀏覽器主窗口中顯示 出狀態行內容。

圖14.1 狀態行的一個例子

 

 

 

 

 

 

 

 

 

 

 

 

 

Response headers包含了響應的內容信息或者是有關服務端作出響應的信息。這些headers有些是標準的,有些則是由網站而定。下 一個部分「利用headers工作」有更加詳細的介紹。

最後,信息體就是響應的主頁內容,例如,請求index.cfm,那麼index.cfm的內容就在信息體內,當然,有時候信息 體的內容也可能是文本文件。word文件等等。

Request和Response對像

Active Server Page內嵌兩種對象,分別是超文本連接傳輸協議的請求和響應對象。request對像對應於HTTP請求,response對 像對應於HTTP響應。

和絕大部分Active Server Pages對像一樣,request和response對象也包括集合、屬性以及方法,利用request對象的集合、屬性和方 法,你可以接受任何瀏覽器到網站的請求,利用response對象的集合、屬性以及方法,你可以控制網站幾乎所有的響應。

例如,request對象的集合包括了所有請求的HTTP headers,而response對像包含了很多種改變響應的HTTP headers的方法,那麼下面部分將詳細介紹怎樣使用這兩種對象。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:35上午 | IP記錄 引用 bibi

利用緩存輸出

通常,Active Server Page在服務端執行,每一句執行的結果都會立即發送到瀏覽器上顯示出來。例如下面這個例子:

<html>

<head><title>buffer example</title></head>

<body>

<%

for i=1 to 500

response.write(i&」<BR>」)

next

%>

</body>

</html>

這個腳本在屏幕上顯示從1到500,每一句命令執行後結果都立即顯示,你可以實時的看到執行結果。

在某些場合下,你也可以利用緩衝區來延緩執行過程,當你利用緩衝區時,直到整個Active Server Page執行結束才會將結果輸出到瀏覽器上。下面是利用buffer修改後的例子:

<% Response.Buffer=True %>

<HTML>

<HEAD><TITLE>buffer Example</TITLE></HEAD>

<body>

<%

For i=1 to 500

Response.write(i&」<br>」)

NEXT

%>

</body>

</html>

這個腳本和前面的那個僅有一個區別,在腳本第一行,將Response對象的Buffer屬性設置為True。那麼這頁執行的時 候,這個主頁的所有內容會同時顯示在瀏覽器上,這個主頁會存在緩存區中直到腳本執行結束。

注意

你可以利用Internet Service Manage來將Buffer的默認值設為True。在Application Configuation對話框的App Options頁中選擇Enable Buffering.

任何對Buffer屬性的修改的語句都必須在主頁和Active Server Page腳本輸出前面,如果你試圖在HTML或者腳本輸出後面修改Buffer屬性,那麼你的程序就會出錯。

利用緩存程序,你就可以根據某種條件來顯示不同的主頁,下面是隨機顯示的一個例子。

<% Response.Buffer=True %>

<HTML>

<HEAD><Title>第一頁</title></head>

<Body>

這是第一頁。

</body>

</html>

<%

Randomize

If Int(2*rnd)=1 then Response.End

Response.Clear

%>

<HTML>

<HEAD><TITLE>第二頁</title></head>

<body>

這是第二頁。

</body>

</html>

在這個例子中,使用了Response對象的兩個新的方法:End方法和Clear方法。End方法會立即停止Active Server Pages的執行和相應結果。你在執行End方法時不需要考慮是否進行了緩存輸出。在這個例子中,End方法被用來防止在顯示第 一頁時、第二頁也顯示出來。

Clear方法是用來在不將緩存中的內容輸出的前提下清空當前頁的buffer,僅僅是使用了緩存輸出的時候你才可以利用cle ar方法,在這裡面,clear方法是用來防止顯示第二個頁面時,第一個頁面也顯示出來。它把第一個頁面從buffer中清空了 。

Response對像中在緩存輸出中還用到了另一個方法是flush,將緩存中的東西立即顯示出來,和clear方法一樣的是, 該方法在腳本前面沒有將buffer屬性設置為true時會出錯,和end方法不同的是,該方法調用後,該Active Server Page繼續執行。

一般,你並不需要緩存輸出一個Active Server Page,這通常是個壞主意,在大的HTML主頁或者運行較長的腳本中,利用緩存顯示結果通常會使得用戶感到迷惑。

如果你希望根據條件顯示不同主頁內容,你完全可以只是簡單的利用VB腳本來做判斷,例如,下面這個例子實現的上面例子的同樣功能 而沒有使用緩存。

<%

Randomize

if INT(2*RND)=1 then

%>

<HTML>

<HEAD><TITLE>第一頁</TITLE></HEAD>

<BODY>

這是第一頁

</BODY>

</HTML>

<% ELSE %>

<HTML>

<HEAD><TITLE>第二頁</TITLE></HEAD>

<BODY>

這是第二頁

</body>

</html>

<% END IF %>

只有一種場合下buffer是必須的,那就是在主頁內容已經確定後你卻需要改變主頁的header。這是你除了將buffer屬 性設為True外別無選擇。那麼,下面有關部分會有更加詳細的介紹。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:35上午 | IP記錄 引用 bibi

處理運行時間長的腳本以及內容大的主頁

腳本運行時間的最長限制默認值為90秒,這是防止無限次循環的進行,是很有用的防護措施。不過,在一些特殊場合中,你也許面臨著 腳本運行時間大於90秒的場合,例如,當你的腳本生成了一個十分巨大的主頁時,你肯定不希望主頁顯示到一半時間就過了限制時間。 那麼你可以利用Server對象的ScriptTimeout屬性來自己設定你希望的限制時間。例如下例:

<% Server.ScriptTimeOut=150 %>

<HTML>

<Head><title>落星</title></head>

<body>

<%

randomize

starx=60

for k=1 to 10

nextsecond=dateadd(「s」,10,time)

do while time<nextsecond

loop

Starx=starx+3*rnd()-1

for i=1 to starx

Response.Write(「&nbsp;」)

Next

Response.Write(「*<p>」)

Next

%>

</body>

</html>

這個腳本將會十分緩慢的顯示落星,每隔10秒在相應位置顯示一個星號。(見圖14.2)。

由於在頁首限定了150秒的限制時間,這個腳本才可能正常執行結束。

你自然也可以利用Server.ScriptTimeout屬性來將限制時間減少到90秒以內,而且你還可以在Internet Service Manager中的Application Configuation對話框中的App Options頁中修改ScriptTimeout屬性,如果你將其改為-1,那麼你的腳本將永遠不會過期。

圖14.2 落星的例子

 

 

 

 

 

 

 

 

 

 

 

 

 

允許腳本執行很長時間就會在你網站資源上創建一個非常重要的管道,實際上,一個腳本也許會執行到甚至發出執行請求的用戶都已經離 開的時候,這種情況下,這種腳本的繼續執行對任何人都沒有好處。幸運的是,Response對象的屬性可以有所助益,IsCli entConnected屬性可以檢查瀏覽器和服務端是否仍然在連接。你可以利用這個屬性將用戶已經離開情況下的腳本停止執行。 例如,下面這個例子會一直顯示到連接終止。

<HTML>

<HEAD><TITLE>Obnoxious Page</title></head>

<body>

<%

while 1=1

Response.Write(「Hello! Magicw3 Com.」)

if NOT Response.IsClientConnected THEN Response.End

WEND

%>

</body>

</HTML>

請注意IsClientConnected屬性僅僅在上一個Response.write調用時瀏覽器仍然處於連接狀態才有效。 如果你運行了一個運行時間很長的腳本程序而沒有輸出任何東西,那麼這個屬性也就不會產生作用。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:35上午 | IP記錄 引用 bibi

處理主頁的Headers

瀏覽器的請求和服務端的響應都包含headers,Headers提供了有關請求和響應的附加信息,也包括了瀏覽器生成請求和服 務端提供響應的過程信息。

Active Server Pages包含了相當多的集合和方法來幫助你維護headers。這些方法一部分對應於特定的任務,例如提供了站點內容分級以及 站點限期時間等功能,其他的方法和集合允許你進行一般的headers的維護。以下部分詳細介紹如何使用這些集合方法來影響he aders。

接受headers

當瀏覽器在服務端接受到一個主頁時,這個請求就包括了相當數量的headers,你可以利用request對象的ServerV ariable集合來接受這些headers,ServerVariable集合既包括了headers也包括了服務端的一些其 他信息。下面的例子將ServerVariable集合的所有內容名稱顯示出來了。

<HTML>

<HEAD><Title>服務端變量</Title></HEAD>

<BODY>

<%

For Each name IN Request.ServerVariables

Response.write(「<p><b>」&name&」</b> :」)

Response.write(Request.ServerVariables(name))

NEXT

%>

</BODY>

</HTML>

顯示結果如圖14.3所示。

可以看出,ServerVariables集合包含了很多各種類型信息,在附錄A「快速ASP對像和組件參考」中包含了標準的h eaders以及Server變量的列表。下列解釋幾個最為常用的:

■HTTP_REFERER.當某人通過鏈接到達當前頁時,HTTP_REFERER header就保存了這個用戶的來源,例如,如果你想知道用戶有多少是從yahoo中訪問這個站點,就可以利用HTTP_REF ERER來獲取這樣的信息。

■HTTP_USER_AGENT. 這個Header指示了用戶訪問你的站點所用的網絡瀏覽器的類型,當你需要瞭解你的網站主要客戶群使用何種瀏覽器,你就可以利用 這個Header中進行瞭解。

■Remote_Addr.這個header包括了訪問者的IP地址,這個地址可以使我們知道訪問者的初始來源,例如是MIT的 學生或者是美國在線的用戶。

■QUERY_STRING. QUERY_STRING變量包含的是輸入網絡地址後問號後面所帶的參數。這個變量的詳細使用方法請見15章 「處理多個Active Server Page」

■SCRIPT_NAME. 這個變量包含的是當前Active Server Page的虛擬路徑,進行自己的引用連接時可能會用到。

■SERVER_NAME. 這個變量包含的是Server的網址。

■PATH_TRANSLATED. 這個變量包含的是當前Active Server Page的真實地址。

現在版本的Internet Explorer(3.0版和4.0版)在請求中包含下面的Headers.

■HTTP_UA_COLOR. 這個Header包含的是瀏覽器可以顯示多少種顏色。

■HTTP_UA_CPU. 這個Header包含的是執行瀏覽器的電腦的CPU型號。

■HTTP_UA_OS. 指的是瀏覽器所在的操作系統。

■HTTP_UA_PIXELS. 指的是瀏覽器所用的電腦的分辨率。

圖14.3 ServerVariables集合

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意

請不要依賴以上的幾個Headers,因為那只適用於windows95下的IE3.0和IE4.0。

你當然可以根據需要利用ServerVariables集合只是去接受特定的header變量,例如下面這個例子,只有從ori gin.asp進入這個例子程序才被允許:

<HTML>

<HEAD><TITLE>服務端變量</TITLE></HEAD>

<BODY>

<%

WhereForm=request.ServerVariables(「HTTP_REFERER」)

IF WhereForm=「http://www.mysitename.com/example/origin.asp」 THEN

%>

歡迎進入邁至科ASP教程示例

<%

ELSE

%>

您未被授權訪問該頁!

<%

END IF

%>

</BODY>

</HTML>

在這個例子中,HTTP_REFERER header檢查用戶連接的來源,只有是從http://www.mysitename.com/example/origin.asp連接過來的才被允許訪問,這樣進行授權控制就非常容易。

警告

使用這些header有時也會有麻煩,因為並不是所有的瀏覽器都有這些header,例如,早期版本的一些瀏覽器不支持HTTP _REFERER header。

利用Headers來控制一個主頁是否進入緩存區

代理服務器被用來減少在互聯網中接受主頁的時間。代理服務器將主頁複製在自己緩存中,這樣別人就只需要從它的緩存中取出來而不用 到原始的服務器上,但是對於Active Server Pages來說(同樣適用於Cold Fusion),代理服務器是個很討厭的東西,因為它的內容是動態更新的,每次訪問都可能由於你所限定的條件而顯示不同內容,而 保存在cache中的顯然無法做到這點,因此,你肯定不希望別人從代理服務器的Cache中調用。

默認情況下,代理服務器不會將Active Server Page放入緩存,不過你可以用ASP的CACHE_CONTROL Header來控制其是否被代理服務器存入緩存。在你的Active Server Page的首行添加下面這句將允許代理服務器將該ASP存入緩存。

<% Response.CacheControl=「Public」 %>

你一樣可以限定你的瀏覽器的緩存怎樣進行緩存操作,瀏覽器通常有內存cache和硬盤cache,使用Response對象的E xpires屬性,你可以限定瀏覽器對其緩存的時間範圍,如果設置為0,那麼瀏覽器就不會將Active Server Pages存入Cache,如下:

<% Response.Expires=0 %>

你還可以限定Cache存在截止的具體的日期時間。如果這樣,瀏覽器將持續使用這個Cache副本直到截止時間,下例截止時間為 1998年8月1日:

<% Response.ExpiresAbsolute=#Oct 1, 1998 00:00:00#>

注意

根據HTTP1.1協議,你不能將截止時間設定的超過一年,相信內容見http://w3.org

你也可以利用Internet Service Manager來限定主頁的過期時間,選擇HTTP Headers頁然後找相關項進行填寫修改。

利用Headers來限定內容等級

Platform for Internet Content Selection(PICS)提供了為一個主頁或者整個站點做標記的方式。例如,你可以用PICS標記來指示出站點內容的暴力 或者色情等級。

PICS自己不是一個等級服務,PICS標準可以適應於網絡上任何不同的文化,這意味著你可以根據自己的標準指定等級而使得互聯 網上PCIS的標準千奇百怪。例如一個文靜的教師自己制定的標準和一些近似瘋狂組織的成員制定的標準肯定有很大區別。

決定使用哪種等級服務是用戶個人自己的事情。理論上,個人可以根據自己的愛好選擇等級服務。通常,這種等級服務支持面很廣,IE 3.0以及以上版本都可以支持PCIS標準。不過,默認的唯一的等級服務是Recreational Software Advisory Council(RSAC)。同樣的組織為電腦遊戲進行了等級劃分。RSAC等級系統有四個種類,分別是暴力、裸體、性、以及語 言,對於每一個種類,你可以在等級1到5之間選擇。

用戶可以設置IE來阻住不符合用戶愛好的站點。例如,用戶可以阻住充滿暴力和色情的站點而去看其他健康的站點。瀏覽器還可以阻住 那些沒有設定等級的站點,(不過,這樣的話,網絡上的絕大部分站點就都被阻住了)

接受一個RSAC等級評定,在RSAC站點註冊就可以了,(目前是免費的)。網址是:http://www.rasc.org。填寫一些表格,就可以了,如圖14.4。

圖14.4 RSAC站點的提問信息

 

例如,你的站點沒有暴力(v)、裸體(n)、性(s)和不健康語言(l)的話,那麼,你的站點就會受到這樣的PICS 標誌:

(PICS-1.1 「Http://www.rsac.org/rathingsv01.cfml」 l gen true

comment 「RSACi North America Server」

by 「walther@aspsite.com

for 「http://www.aspsite.com

on 「1998.06.10T02.04-0800」 r (n 0 s 0 v 0 l 0))

在你獲得了這樣的標誌後,你就可以在主頁首利用這種標誌,這時可以使用PICS屬性來在當前的Header中添加這樣的標誌,見 下面的例子:

<% Response.PICS(「(PICS-1.1」&chr(34)

&「Http://www.rsac.org/rathingsv01.cfml」 &chr(34)

&「l gen true comment」&chr(34)

&「RSACi North America Server」&chr(34)

&」by」&chr(34)& 「walther@aspsite.com

&chr(34)&」for」& 「http://www.aspsite.com

&chr(34)&」on」&chr(34)

& 「1998.06.10T02.04-0800」

&chr(34)&r (n 0 s 0 v 0 l 0))」)

%>

這樣就將標誌加在了主頁的Header,但是這種方法太麻煩了,因為每一個雙引號都要用&chr(34)&來處 理,實在麻煩,下面是作為主頁操作的更為簡單的方法:

<META http-equiv=「PICS-Lable」

content=『(PICS-1.1 「Http://www.rsac.org/rathingsv01.cfml」 l gen true

comment 「RSACi North America Server」

by 「walther@aspsite.com

for 「http://www.aspsite.com

on 「1998.06.10T02.04-0800」 r (n 0 s 0 v 0 l 0))』>

注意

你當然也可以利用Internet Service Manager來限定內容等級,在HTTP Headers頁,選擇Edit Ratings。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 
bibi
Senior Member
Senior Member


加入: 2005/1月/07
Online Status: Offline
回復: 103
Posted: 2005/1月/07 9:36上午 | IP記錄 引用 bibi

對Headers的授權操作

當需要進行主頁保護時,對於接受用戶信息來確認是否授權進入該主頁有四個Headers的內容是很有用的。AUTH_TYPE Header指示了用戶進入主頁的授權方式,AUTH_USER和LOGON_USER Header包含的是Windows NT用戶的用戶名信息。最後,作為基本的認證手段,AUTH_PASSWORD 包含了用戶註冊的密碼信息。

注意

你可以利用Internet Service Manager來建立密碼保護的主頁。最簡單的設置密碼保護的方式是右鍵該文件名,選擇屬性,然後文件安全表。對一個整個網站或 者目錄進行密碼保護,右鍵網站或者目錄,同樣選擇屬性,然後選擇目錄安全表。

你可以或者選擇基本安全認證或者是NT Challenge和Response。後者由於運用密鑰技術對密碼傳送進行加密,因此顯然更加安全。但是後者需要瀏覽器支持, 而前者基本上支持所有通用瀏覽器。

例如,下面Active Server Page將對用戶身份進行檢驗,看其是否可以進入主頁。這是利用AUTH_TYPE Header來完成的。

這個Headers有兩個主要的變量:basic針對於基本認證默認,或者NTLM對應於NT Challenge和Response模式。(LM代表LAN Manager--微軟的一種NT前的操作系統),然後會顯示用戶的帳號。

<HTML>

<HEAD><TITLE>密碼保護</TITLE></HEAD>

<BODY>

<%

IF Request.ServerVariables(「AUTH_TYPE」)=「Basic」 THEN

%>

你已經利用基本認證方式註冊進入邁至科網絡ASP示例程序。

你的帳號是<%=Request.ServerVariables(「LOGON_USER」)%>

<% ELSE %>

你正在利用NT Challenge和Response模式進入邁至科網絡ASP示例程序。

你的帳號是<%=Request.ServerVariables(「LOGON_USER」)%>

<% END IF %>

</BODY>

</HTML>

運行時會首先出現一個對話框要求輸入帳號密碼,正確後會根據你所用的認證模式顯示相應字段(見圖14.5)。

圖14.5 一個密碼保護頁

 

 

 

 

 

 

 

 

 

 

 

 

 

修改Content-Type Header

Content -Type Header指示了響應文本的媒體形式,(MIME類型)。通常的例子是」text/HTML」, 「image/gif」, 「application/msword」, 或者」text/rtf」,你可以使用Response對象的ContentType屬性來設置它。

最簡單的例子應用是將Content-type設置為text/plain,那麼將顯示主頁的源代碼而不是作為HTML應該顯示 的格式。下面這個例子:

<%

Response.ContentType=「text/plain」

%>

<HTML>

<HEAD><TITLE>HTML文本</TITLE></HEAD>

<BODY>

<H1>邁至科公司網絡ASP示例之HTML文本</h1>

</BODY>

</HTML>

你會發現,所有文本顯示在瀏覽器上而不只是HTML應該顯示的那一句話。

狀態代碼

儘管Response對象的Status屬性並不修改Header,但是由於它可以被用來限定一個HTTP響應的狀態碼,完全有 理由在這裡討論它。

不管什麼時候服務端響應一個請求,首先都是發送一行狀態代碼。狀態代碼為三位數字,下面是5種狀態代碼含義列表:

■1xx信息:這種狀態碼主要是實驗性的。

■2xx成功:這種狀態信息是說明請求已經被成功接受並響應,例如:狀態碼200表示主頁請求被完全成功的接受。

■3xx重定向。 這個狀態碼指示一些接受請求前必須瞭解的一些其後面進程的信息,例如:狀態碼301說明該主頁已經轉移到了其他地址,這時瀏覽器 會自動轉向新的地址。

■4xx客戶端錯誤:這個狀態碼表示瀏覽器發出的是錯誤的請求,例如:404指的是瀏覽器請求的主頁是不存在的。

5xx服務端錯誤:這種狀態碼表明服務器響應出現了問題,例如,503指當前服務端遇到了無法應付的錯誤。

注意

如果想要瞭解全部狀態碼的含義,請參看http://w3.org

你可以利用Resposne對象的Status屬性來限定響應的狀態碼。例如,如果有人嘗試星期三訪問一個ASP主頁,就發送一 個401沒有授權的信息(顯示在密碼型對話框中)。

<%

IF WEEKDAYNAME(WEEKDAY(DATE))=「Wednesday」 THEN

Response.Status=「401 沒有授權」

Response.End

ELSE

%>

<HTML>

<HEAD><TITLE>不是星期三</TITLE></HEAD>

歡迎訪問邁至科網絡ASP示例之狀態碼應用<hr>

今天不是星期三

</BODY>

</HTML>

<% END IF %>

 

總結

這章主要介紹Request和Response對象,這是Active Server Page最重要的兩種對象。你應當已經學會了使用Respose對像利用緩存區來輸出,同時學會了很多種方法來處理運行時間較長 和內容過大的主頁。最後,瞭解了一些對Headers的操作以及相應系統變量處理。

這一章中,你所學的方法、集合和屬性都是針對於單一的Active Server Pages, 當然,作為一套站點系統,多主頁之間的相互處理更加重要,這裡面通過Form傳遞信息是很重要的,下一章你就可以詳細學會這些, 通過Form或者利用Query字段(相當於參數傳遞)來進行不同主頁間信息傳遞。

Back to Top 查看 bibi's 資料 搜索其他貼子 bibi 訪問 bibi's
 

如果你想回復的話你必須首先 login
如果你還沒有注冊的話你必須首先 注冊

  回復發表新主題
顯示可打印的頁面 顯示可打印的頁面

論壇跳轉
不能 張貼新論題在這個討論版
不能 回應論題在這個討論版
不能 刪除你的發言在這個討論版
不能 編輯你的發言在這個討論版
不能 新增投票標題在這個討論版
不能 在這個討論版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.1709 seconds.

 
保養品
保養品, Skin Care
www.elady.tw
美材批發
美材, Cosmetic
www.elady.tw/beauty_org
保養品批發
名牌保養品、保養品批發
gb.perfume.com.tw/skincare
飾品批發
飾品、飾品批發
gb.perfume.com.tw/ornament