亚洲成人免费在线播放/不雅视频/国产 欧美 视频一区二区三区/性欧美hd调教

愛我網(i5wang.com)LOGO
;
愛我網公告

域名實名認證通知
新網站及非萬網接入及時做備案和當面審核通知
個人也可以購買.cn域名趕快行動吧!
朝陽公安局做網站備案的緊急通知

海淀公安局做網站備案的緊急通知
愛我網工作室主營業務:網站建設,網絡營銷,網站優化,虛擬主機,建網站,做網站,網站制作,網站優化,網絡推廣,網頁設計,域名注冊,虛擬主機,企業郵局,網站維護,網站改版,軟件開發等.我們擁有豐富的網站制作經驗,技術服務團隊,結合SEO經驗為您量身打造適合網站。根據企業主營業務和網站建設目的,分析并確定網站形象定位,網站功能定位,信息結構設計,欄目設計,頁面總量等內容,為您量身訂制出一套完整的網站建設方案。我們本著"用心服務客戶,讓您省心放心,共同分享互聯網帶來的機遇!"的理念為您提供服務.聯系電話:13501155864

建站須知

百度百科中的asp詞條:什么是asp

概述
ASP是Active Server Page的縮寫,意為“活動服務器網頁”。ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與數據庫和其它程序進行交互,是一種簡單、方便的編程工具。ASP的網頁文件的格式是.asp,現在常用于各種動態網站中。 ASP是一種服務器端腳本編寫環境,可以用來創建和運行動態網頁或Web應用程序。ASP網頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。利用ASP可以向網頁中添加交互式內容(如在線表單),也可以創建使用HTML網頁作為用戶界面的web應用程序。 與HTML相比,ASP網頁具有以下特點:

(1)利用ASP可以實現突破靜態網頁的一些功能限制,實現動態網頁技術;

(2)ASP文件是包含在HTML代碼所組成的文件中的,易于修改和測試;

(3)服務器上的ASP解釋程序會在服務器端制定ASP程序,并將結果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產生的網頁;

(4)ASP提供了一些內置對象,使用這些對象可以使服務器端腳本功能更強。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,并在腳本中對這些信息進行處理,然后向web瀏覽器發送信息;

(5)ASP可以使用服務器端ActiveX組件來執行各種各樣的任務,例如存取數據庫、發現哦那個Email或訪問文件系統等。

(6)由于服務器是將ASP程序執行的結果以HTML格式傳回客戶端瀏覽器,因此使用者不會看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取。



ASP的工作原理


當在Web站點中融入ASP功能后,將發生以下事情:

1、用戶向瀏覽器地址欄輸入網址,默認頁面的擴展名是.asp。

2、瀏覽器向服務器發出請求。

3、服務器引擎開始運行ASP程序。

4、ASP文件按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。

5、頁面信息發送到瀏覽器。




ASP的運行環境


asp需要運行在PWS或IIS下。PWS或IIS服務在windows98或windows2000的光盤上附帶著,可以通過“添加/刪除程序”中的“添加/刪除windows組件”來安裝。

一般asp需與access數據庫或SQL Server數據庫結合使用,編出功能強大的程序。

能夠運行ASP的web服務器軟件

Windows2000默認安裝的是IIS5.0(internet information server),而windows xp默認安裝的是IIS5.1,windows 2003默認安裝的IIS6.0。

PWS(personal web server)運行在windows98環境下的簡單個人網頁服務器。



ASP常用內置函數

1,日期/時間函數

這些函數包括對“年”、“月”、“日”、“時”、“分”、“秒”、“星期”等的顯示。

(1)Now函數:根據計算機系統設定的日期和時間,返回當前的日期和時間值。使用方法now();

(2)Date函數:只返回當前計算機系統設定的日期值。使用方法:date();

(3)Time函數:只返回當前計算機系統設定的時間值。使用方法:time();

(4)Year函數:返回一個代表某年的整數。使用方法:year(date),其中date參數是任意的可以代表日期的參數,比如“year(date())”就表示是從“date()”得出的日期中提取其中“年”的整數。

另外,還可以這樣應用:“year(#5 20,2006#)”表示提取“2006年5月20日”中“年”的整數值。關于“5 20,2006”,也可使用“5-20-2006”、“5/20/2006”等形式表現,即“某月某日”和“某年”的組合。同時注意使用“#”進行包括以表示日期值。

(5)Month函數:返回1到12之間的整數值,表示一年中某月。使用方法:month(date)。關于參數date的說明和year函數相同。但要注意日期的正確性,比如“#13-31-2006#”,根本就沒有“13”月,肯定是錯誤的了。

(6)Day函數:返回1到31之間的整數值,表示一個月中的某天。使用方法:day(date)。關于參數date的說明和year函數相同。同樣要注意日期的正確性,比如“#2-30-2006#”其中對“2”月定義的“30”日這天就是錯誤的。

(7)Hour函數:返回0到23之間的整數值,表示一天中的某個小時。使用方法:hour(time)。其中參數time是任意的可代表時間的表達式。比如“hour(time())”就表示是從“time()”得出的時間中提取其中“小時”的整數。同樣,參數time還可以這樣應用“hour(#11:45:50#)”表示從“11”時“45”分“50”秒中提取當前小時數。當然,定義的時間要符合時間的規范。

(8)Minute函數:返回0到59之間的整數值,表示一小時中的某分鐘。使用方法:minute(time)。time參數的說明和hour函數相同。

(9)Second函數:返回0到59之間的整數值,表示一分鐘中的某秒。使用方法:second(time)。time參數的說明和hour函數相同。

(10)Weekday函數:返回一個星期中某天的整數。使用方法:weekday(date)。關于參數date的說明和year函數相同。該函數返回值為“1”到“7”,分別代表“星期日”、“星期一”……“星期六”。比如當返回值是“4”時就表示“星期三”。

(11)WeekDayName函數:返回一個星期中具體某天的字符串。相對weekday函數而言即翻譯出“星期幾”,使用方法:weekdayname(weekday)。參數weekday即星期中具體某天的數值。比如“weekdayname(weekday(date()))”就表示當前是“星期幾”。因為“date()”表示的是當前的時間,而“weekday(date())”就表示的是一星期中具體某天的整數。

當然weekdayname函數最終顯示的字符串內容還與當前操作系統語系有關,比如中文操作系統將顯示“星期一”這類的中文字符,而英文操作系統則顯示為“Mon”(Monday簡寫)。

此外,在VBScript中還有一些關于時間間隔的計算函數:

(1)DateAdd函數:返回指定時間間隔的日期、時間。可以計算出相隔多少年、或相隔幾個月、又或相隔幾個小時等的新日期、時間。使用方法:dateadd(interval, number, date)。

其中參數interval表示需要添加的時間間隔單位。其是以字符串的形式表達的,比如“yyyy”表示年,“q”表示季度,“m”表示月份,“d”表示天數,“ww”表示周數,“h”表示小時數,“n”表示分鐘數,“s”表示秒數。

而參數number則表示添加的時間間隔數。其是以數值的形式表達的,可以為負值。參數date則要求是日期、時間的正確格式。

比如dateadd("d",100,"2006-5-20")就表示2006年5月20號以后的100天的日期值:2006-8-28。再比如dateadd("h",-12,"2005-5-20 10:00:00")就表示2005年5月20號上午10點前的12小時的日期時間:2005-5-19 22:00:00。

(2)DateDiff函數:返回兩個日期時間之間的間隔。可計算出兩個日期相隔的年代、小時數等。使用方法:datediff(interval,date1,date2)。

參數interval和dateadd函數中的interval參數內容描述相同,date1和date2參數分別就是相互比較的兩個日期時間。另外,當date1的日期時間值大于date2時,將顯示為負值。

比如DateDiff("yyyy","1982-7-18",date)表示某人的出生到現在已經多少年了。又比如DateDiff("d","1982-7-18","2062-7-18")則計算了80年過了多少天:29220。

2,字符串處理函數

在腳本的功能處理中,通常需要對一些字符串進行一些修飾性處理。比如過濾掉字符串中的敏感字眼以符合最終顯示的要求;又比如一段較長的字符串,需要提取開頭的幾個字符時。

(1)Asc函數:返回字符串中第一個字母對應的ANSI字符代碼。使用方法:asc(string)。其中string參數表示字符串。

(2)Chr函數:返回指定了ANSI 字符代碼對應的字符。使用方法:chr(chrcode)。參數chrcode是相關的標識數字。該函數的功能和asc函數形成對應。

比如:asc(“a”)表示小寫字母“a”的ANSI 字符“97”;同樣chr(97)表示的就是“小寫字母a”。另外chr(chrcode)中參數chrcode值為0到31的數字時,表示不可打印的ASCII碼。比如“chr(10)”表示換行符,“chr(13)”表示回車符等,這常用于輸入和顯示格式的轉換中。

(3)Len函數:返回字符串內字符的數目(字節數)。使用方法:len(string)。比如len(“love”)的值就是4。

(4)LCase函數:返回所有字符串的小寫形式。使用方法:lcase(string)。比如lcase(“CNBruce”)返回為“cnbruce”。

(5)UCase函數:返回所有字符串的大寫形式。與lcase函數形成對應。同樣,ucase(“CNBruce”)返回為“CNBRUCE”。

(6)Trim函數、LTrim函數和RTrim函數:分別返回前導和后續不帶空格、前導不帶空格或后續不帶空格的字符串內容。比如:

trim(“ cnbruce ”)返回為“cnbruce”,前導和后續都不帶空格;
ltrim(“ cnbruce ”)返回為“cnbruce ”,前導不帶空格;
rtrim(“ cnbruce ”)返回為“ cnbruce”,后續不帶空格;

該函數常用于注冊信息中,比如確保注冊用戶名前或后的空格。

(7)Left函數:返回從字符串的左邊算起的指定數目的字符。使用方法:left(string,length)。比如left(“brousce”,5)返回為“brous”,即前五位字符。

(8)Right函數:返回從字符串的左邊算起的指定數目的字符。使用方法:right(string,length)。比如right(“brousce”,4)返回為“usce”,即后四位字符。

(9)instr函數:返回某字符串在另一字符串中第一次出現的位置。比如現在查找字母“A”在字符串“A110B121C119D1861”中第一次出現的位置,則可以 instr(my_string,"A110B121C119D1861")

(10)Mid函數:從字符串中返回指定數目的字符。比如現在的“110”則應該是從字符串“A110B121C119D1861”的第2位取得3個單位的值:mid("A110B121C119D1861",2,3)

(11)Replace函數:在字符串中查找、替代指定的字符串。replace(strtobesearched,strsearchfor,strreplacewith)其中strtobesearched是字符串,strsearchfor是被查找的子字符串,strreplacewith是用來替代的子字符串。比如 replace(rscon,"<","<") 則表示將rscon中所有“<”的字符替換為“<”

3,類型轉換函數

Cbool(string) 轉換為布爾值
Cbyte(string) 轉換為字節類型的值
Ccur(string) 轉換為貨幣類值
Cdate(string) 轉換為日前類型的值
Cdbl(string) 轉換為雙精度值
Cint(string) 轉換為整數值
Clng(string) 轉換為長整型的值
Csng(string) 轉換為單精度的值
Cstr(var) 轉換為字符串值
Str(var) 數值轉換為字符串
Val(string) 字符串轉換為數值

4,運算函數

Abs(nmb) 返回數子的絕對值
Atn(nmb) 返回一個數的反正切
Cos(nmb) 返回一個角度的余炫值
Exp(nmb) 返回自然指數的次方值
Int(nmb) 返回數字的整形(進位)部份
Fix(nmb) 返回數字的整形(舍去)部份
Formatpercent(表達式) 返回百分比
Hex(nmb) 返回數據的16進制數
Log(nmb) 返回自然對數
Oct(nmb) 返回數字的8進制數
Rnd 返回大于“0”而小于“1”的隨機數,但此前需 randomize 聲明產生隨機種子
Sgn(nmb) 判斷一個數字的正負號
Sin(nmb) 返回角度的正鉉值
Sqr(nmb) 返回數字的二次方根
Tan(nmb) 返回一個數的正切值

5,其他函數

IsArray(var) 判斷一個變量是否是數組
IsDate(var) 判斷一個變量是否是日期
IsNull(var) 判斷一個變量是否為空
IsNumeric(var) 判斷表達式是否包含數值
IsObject(var) 判斷一個變量是否是對象
TypeName(var) 返回變量的數據類型
Array(list) 返回數組
Split(liststr) 從一個列表字符串中返回一個一維數組
LBound(arrayP 返回數組的最小索引
Ubound(array) 返回數組的最大索引
CreateObject(class) 創建一個對象
GetObject(pathfilename) 得到文件對象




ASP中Application和Session對象

一、Application對象的成員概述

  Application對象成員包括Application對象的集合、方法和事件。

  ⒈Application對象的集合

  Contents集合:沒有使用元素定義的存儲于Applicaiton對象中的所有變量的集合
  StaticObjects:使用元素定義的存儲于Application對象中的所有變量 的集合
  例:在default.asp中有如下賦值
  application("a")="a"
  application("b")=128
  application("c")=false

  則有contents集合
  application.contents(1)="a" '也可寫為application.contents("a")="a"
  application.contents(2)=128 '也可寫為application.contents("b")=128
  application.contents(3)=false '也可寫為application.contents("c")=false

  在此筆者推薦你在調用時使用類如application.contents("a")的方法,因為這樣更為直觀,如果用序號來表示的話則要考慮賦值的先后順序。

  ⒉Application對象的方法

  Contents.Remove("變量名"):從Application.Contents集合中刪除指定的變量
  Contents.RemoveAll() :把Application.Contents集合中的所有變量刪除
  Lock() :鎖定Application對象,使得只有當前的ASP頁對內容能進行訪問
  Unlock() :解除對Application對象的鎖定
  例:在default.asp中:
  application("a")="a"
  application("b")=128
  application("c")=false
  response.write application.contents(1)&"
"
  response.write application.contents(2)&"
"
  response.write application.contents(3)&"
"
  response.write "After Remove b:"
  application.contents.remove("b")
  response.write application.contents(1)&"
"
  response.write application.contents(2)&"
"

  執行結果:
  a
  128
  False
  After Remove b:
  a
  False
  如果要刪除集合中所有變量用application.contents.removeall即可,至于Lock和Unlock方法在實際中經常用到,讀者也比較熟悉,在此就不在累贅。

  ⒊Application對象事件

  OnStart:第一個訪問服務器的用戶第一次訪問某一頁面時發生
  OnEnd :當最后一個用戶的會話已經結束并且該會話的OnEnd事件所有代碼已經執行完畢后發生,或最后一個用戶訪問服務器一段時間(一般為20分鐘)后仍然沒有人訪問該服務器產生。
  想要定義application對象的OnStart和OnEnd事件里做什么需要將代碼寫在Global.asa這個文件里(下文有舉例),并且將該文件放在站點的根目錄下(一般是Inetpub\wwwroot\)

  二、Session對象的成員概述

  Session對象的成員比Application對象多一項屬性,即:集合、屬性、方法、事件

  ⒈Session對象的集合

  Contents :沒有使用元素定義的存儲于特定Session對象的所有變量的集合。
  StaticObject:使用元素定義的、存儲于Session對象中的所有變量的集合。
  例:在default.asp中有如下賦值
  session("a")="a"
  session("b")=128
  session("c")=false

  則有contents集合
  session.contents(1)="a" '也可寫為session.contents("a")="a"
  session.contents(2)=128 '也可寫為session.contents("b")=128
  session.contents(3)=false '也可寫為session.contents("c")=false

  ⒉Session對象的屬性

  CodePage: 可讀/可寫。整型。定義用于在瀏覽器中顯示頁內容的代碼頁。代碼頁是字符集的數字值,不同的語言使用不同的代碼頁。例如,ANSI代碼頁為1252,日文代碼頁為932,簡體中文代碼頁為936。
  LCID : 可讀/可寫。整型。定義發送給瀏覽器的頁面地區標識。LCID是唯一地標識地區的一個國際標準縮寫,例如,2057定義當前地區的貨幣符號是"£"。
  SessionID: 只讀。長整型。返回本會話的會話標識符。每創建一個會話,由服務器自動分配一個標識符。可以根據它的值判斷兩個用戶是誰先訪問服務器。
  Timeout : 可讀/可寫。整型。為會話定義以分鐘為單位的超時限定。如果用戶在這個時間內沒有刷新或請求任何一個網頁,則該用戶產生的會話自動結束。缺省值是20。
以上屬性在實際應用中作用不大,而且基本上不需要怎么修改,這幾個屬性也沒什么特殊的地方。

  ⒊Session對象的方法

  Contents.Remove("變量名"): 從Session.contents集合中刪除指定的變量
  Contents.Removeall() : 刪除Session.contents集合中的所有變量
  Abandon() : 結束當前用戶會話并且撤消當前Session對象。
  Session對象的Contents.Remove("變量名")和Contents.Removeall()方法與Application對象的基本上沒什么區別,為幫助理解,大家可以參照上面的例子將Application改為Session。這里要說明一下的是Contents.Removeall()和Abandon()的區別,執行這兩個方法都會釋放當前
  用戶會話的所有Session變量,不同的是Contents.Removeall()單純地釋放Session變量的值而不終止當前的會話,而Abandon()除了釋放Session變量外還會終止會話引發Session_OnEnd事件,希望大家注意兩者的區別。

  ⒋Session對象的事件

  OnStart: 當ASP用戶會話產生時觸發,一旦有任一用戶對本服務器請求任一頁面即產生該事件。
  OnEnd : 當ASP用戶會話結束時觸發,當使用Abandon()方法或超時也會觸發該事件。
  這兩個事件和Application的OnStart、OnEnd事件一樣,也是必須放在Global.asa文件里,下
面就重點和大家研究一下這四個事件的使用。

  三、Global.asa

  ASP的Application和Session對象體現了其他ASP內置對象所沒有的特征--事件。每一個訪客訪問服務器時都會觸發一個OnStart事件(第一個訪客會同時觸發Application和Session的OnStart事件,但Application先于Session),每個訪客的會話結束時都會觸發一個OnEnd事件(最后一個訪客會話結束時會同時觸發Application和Session的OnEnd事件,但Session先于Application)。

  OnStart和OnEnd這兩個事件一般應用在虛擬社區中統計在線人數、修改用戶的在線離線狀態等。要具體定義這兩個事件,需要將代碼寫在Global.asa文件,并將該文件放在站點的根目錄下(缺省是\Inetpub\wwwroot\)。另外,Application和Session對象規定了在OnEnd事件里除了Application對象外其他ASP內置對象(Response、Request、Server、Session...)一概不能使用。以下舉一個虛擬社區統計在線人數的例子來說明如何使用這兩個事件。

  文件說明:
  global.asa 位于d:\Inetpub\wwwroot\目錄下
  default.asp 位于d:\Inetpub\wwwroot\目錄下,虛擬社區登錄頁面
  login.asp 位于d:\Inetpub\wwwroot\目錄下,用于檢測用戶輸入的用戶名及密碼
  index.asp 位于d:\Inetpub\wwwroot\目錄下,虛擬社區首頁
  bbs.mdb 位于d:\Inetpub\wwwroot\目錄下,存儲用戶信息的數據庫

  數據庫(ACCESS)結構:
   ===bbs表===
  id 用戶ID,長整型
  name 用戶名,文本型
  code 密碼,文本型
  online 在線狀態,是/否
  ===global.asa===
  <script LANGUAGE="VBScript" RUNAT="Server">
  Sub Application_OnStart
   application("online")=0
  End Sub
  sub Application_OnEnd
  nd Sub
  Sub Session_OnStart
  End Sub
  Sub Session_OnEnd
   if session.contents("pass") then '判斷是否為登錄用戶的Session_OnEnd
    application.lock
    application("online")=application("online")-1
    application.unlock
   end if
  End Sub
  </script>
  ===login.asp===
   ......'密碼驗證,連接數據庫,檢測用戶輸入的用戶名及密碼是否正確
  if 密碼驗證通過 then
   session("name")=rs("name")
   session("id")=rs("id")
   session("pass")=true
  else
   rs.close
   conn.close
   response.write "密碼錯誤!"
   response.end
  end if
  application.lock
  application("online")=application("online")+1
  conn.Execute ("update bbs set online=1 where id="&session("id"))'將用戶的狀態設為在線
  application.unlock
  rs.close
  conn.close
  response.redirect "index.asp" '初始化數據后跳轉到社區首頁
  ===========

  在本例中,用application("online")變量記錄已經登錄社區的在線人數,因為一旦有用戶訪問服務器而不管用戶是否登錄,都會產生OnStart事件,所以不能在OnStart事件里使Applicaiton("online")加一。因為不管是否是登錄用戶的會話結束都會產生OnEnd事件(假如有訪客訪問了服務器但并不登錄社區,他的會話結束后也會產生OnEnd事件),所以在Session_OnEnd事件里用了句if語句來判斷是否為已登錄用戶的OnEnd事件,如果是才將在線人數減一。
  這只是一個統計在線人數的簡單例子,對于一個完整的虛擬社區來說,僅僅統計有多少人在線是不夠的,在本例中數據庫里有個online字段是用來記錄用戶的在線狀態,用戶登錄的時候,在login.asp里將online設為1,但用戶離線時并沒有將online設為0,要完善它,就要修改一下Session_OnEnd事件,在該事件里將online設為0。
  ===global.sas===
  <script LANGUAGE="VBScript" RUNAT="Server">
  Sub Application_OnStart
   application("online")=0
   set application("conn")=Server.CreateObject("ADODB.Connection")
   application("db")=Server.MapPath("\bbs.mdb") '此處最好使用絕對路徑\bbs.mdb,下文有詳細介紹
  End Sub
  sub Application_OnEnd
   set application("conn")=nothing
  End Sub
   Sub Session_OnStart
  End Sub
  Sub Session_OnEnd
   if session.contents("pass") then '判斷是否為登錄用戶的Session_OnEnd
     application("con").open ="driver={Microsoft Access Driver (*.mdb)};dbq="&application("db")
      application.lock
      application("online")=application("online")-1
      application("con").Execute ("update friends set online=0 where id="&session.contents("id"))
      application.unlock
      application("con").close
   end if
  End Sub
  </script>
  ==============

  至此,完整的代碼已經完成了。因為在Application和Session的OnEnd事件里不能使用Server對象,所以要將數據庫的連接及數據庫在服務器上的物理地址(d:\inetpub\wwwroot\bbs.mdb)存儲在application變量中,并在Application_OnStart事件中預先處理。同理,在Session_OnEnd事件中不能用session("pass")來代替session.contents("pass")(以下有詳盡說明)。
  四、本文實例中值得引起注意的兩點

  ⒈OnEnd事件里的session.contents
  剛開始接觸global.asa的朋友經常會將上面Session_OnEnd事件里的
  if session.contents("pass") then 寫成
  if session("pass") then,

  這樣的話系統不會提示錯誤,但是永遠也不會執行then后面的內容,這是因為在OnEnd事件里禁止使用Session對象,但是可以用Session對象的集合來調用session變量。因為IIS并沒提示任何錯誤信息,所以筆者曾經在這上面浪費了很多時間。在此希望大家引以為鑒!
  ⒉Application_OnStart事件里用Server.MapPath獲取數據庫的物理地址時應使用絕對地址為了說明這個問題,大家可以做個實驗:將上面Application_OnStart事件里的
  application("db")=Server.MapPath("\bbs.mdb")改為:
  application("db")=Server.MapPath("bbs.mdb")

然后在d:\inetpub\wwwroot\目錄下建立一個test子目錄,寫一個temp.asp在test目錄里。
  ====test.asp====
  <%response.write application("db")%>
  ================

再將temp.asp拷貝一份放在根目錄下(d:\inetpub\wwwroot\)。用記事本打開global.asa,再打開兩個瀏覽器,瀏覽器A輸入地址http://localhost/temp.asp,按回車,將在瀏覽器上輸出:
  d:\inetpub\wwwroot\bbs.mdb

然后,在記事本的窗口上點"文件"菜單,選"保存"(使global.asa的修改時間改變,從而使IIS重啟動所有服務),再在瀏覽器B輸入地址http://localhost/test/temp.asp,按回車,在瀏覽器上輸出的是:
  d:\inetpub\wwwroot\test\bbs.mdb

global.asa文件雖然是放在站點根目錄下,但是如果在server.mappath中使用的是相對地址,而觸發Application_OnStart事件的用戶第一次訪問的頁面又不是屬于根目錄的話,得到數據庫的物理地址將不會是期望的結果,希望大家要特別小心。

類別:Web | 編輯 | 刪除

| 評論(0) | 瀏覽(0)

全面解析ASP Server對象
2007-07-27 12:40
Server對象提供對服務器上訪問的方法和屬性.大多數方法和屬性是作為實用程序的功能提供的。
  語法:
   Server.property|method
  屬性(property)
   Server對象只有一個屬性:ScriptTimeout 程序能夠運行的最大時間
  方法(Methods)
   CreateObject 建立一個對象實例.
   Execute 執行一個asp文件
   GetLastError 返回一個錯誤代碼
   HTMLEncode 對指定的HTML代碼進行轉換.
   MapPath 將一個相對路徑轉化為一個絕對路徑.
   Transfer 將當前的所有狀態信息發送給另一個asp文件
   URLEncode 以URL形式轉化指定的代碼,包括空格
  Server對象的方法詳細說明
   CreateObject
   語法
   Server.CreateObject( progID )
   參數
    progID
    指定要創建的組件名稱,格式如下: [Vendor.]Component[.Version].
   要點:
    一般來說,用由Server.CreateObject方法創建的對象擁有頁面的范圍.這就說,當這頁的asp程序執行完后,這種對象會自動地消失.
  為了創建一個擁有Session或Application范圍的對象,你可以在Global.asa文件中使用
  Execute
  Execute 方法呼叫一個ASP文件并且執行它就像這個呼叫的ASP文件存在這個ASP文件中一樣。這很像許多語言中的類的調用。
  語法
  Server.Execute( Path )
  參數
   Path
  指定執行的那個asp文件的路徑。如是它是一個絕對路徑,那么它必須是一個在這個ASP應用程序相同的地方(目錄)。
  講解
  Server.Execute 方法提供了一種將一個復雜ASP應用程序分化為小塊單位來執行的方法。通過這種方法,你能夠建一個ASP圖書館,你能夠隨便在你需要時調用你圖書館中的ASP文件。這個就有點像SSI了!嘿嘿!
  當IIS根據指定的ASP文件路徑執行完這個ASP文件之后,就會自動返回以前的ASP文件。這個剛剛執行完的ASP文件有可能改變了HTTP head.但是和其它的ASP文件一樣,當程序試圖改變http head時,就會報錯!
  這個path參數可以包括一個詢問信息。
  如果在被呼叫和呼叫的ASP文件中都含有相同的子函數,那么這些子函數只在本ASP文件中起作用。舉個例子,如果在下面的ASP1和ASP2兩個文件中都含有放棄程序的子函數。首先ASP1呼叫ASP2,那么ASP2中的的OnTransactionAbort開始執行,當ASP2執行完畢,ASP1中的OnTransactionAbort才開始執行。
 
 ASP1:
< %@ Transaction=
Required
%>
< %
 Server.Execute ("Page22.asp")
 Sub OnTransactionAbort
 Sub OnTransactionCommit
%>
  
Asp2.asp:
< %@
 Transaction=Required
 Sub OnTransactionAbort
 Sub OnTransactionCommit
%>

  Example
  
ASP1
< % Response.Write("I am going to execute ASP2 ")
Server.Execute("/myasps/asp2.asp")
%>
ASP2
< % Response.Write("Here I am")%>

  GetLastError
  GetLastError 方法返回一個ASPError Object 來描述一個錯誤信息.這個方法只適用于在asp文件發送任何內容給用戶機之前.
  語法
  Server.GetLastError ()
  要點
  如果一個500;100 用戶錯誤已經被定義在一個asp應用程序中,它是指的一個以.asp為后綴的文件。這種情況下,在這個程序運行時當一個錯誤發生時,服務器就會自動的以Server.Transfer這種方式傳送到這個正在執行的ASP頁面。ASP應用程序就會將有效的處理這個錯誤。另外,這個ASPError Object一定要有效,這樣你就能夠看到服務器提供給你的錯誤信息來改這個文件了!
  一般的Web Site 都是根據文件\iishelp\common\500-100.asp來構造的。你能夠用它來執行一個asp錯誤,當然你能夠自己定義了!。如果你想改變為另外一個asp文件的來執行這些用戶錯誤。那么你可以用IIS中的snap-in.
  注意:當IIS發現了一個asp文件或者global.asa文件中的一個錯誤,那么一個500;100用戶錯誤產生。以下的程序將不能執行!
  Example
  下面的三個例子證明不同的錯誤會產生的用戶錯誤。三個錯誤是:
  編譯錯誤
  運行錯誤
  邏輯錯誤
  第一個例子證明了一個編譯錯誤,就是當IIS試圖包含一個文件時產生的。這個錯誤會產生是因為在這個包含文件中沒有定義所需的參數。第二個例子顯示的是一個運行錯誤,這個程序中斷的原因是程序中沒有“next".第三個例子顯示的是一個邏輯錯誤,因為這個程序試圖除以一個0. 不行啦! 
  
Example 1
< %
  response.write "hello"
%>
Example 2
< %
  dim I
  for i=1 to 1
  nxt
%>
Example 3

< %
  dim i,j
  dim sum
  sum=0
  j=0
  for i=1 to 10
   sum=sum+1
  next
  sum=sum/j
%>
  HTMLEncode
  HTMLEncode方法對指定的字符串進行HTML編碼.
  語法
   Server.HTMLEncode( string )
  參數
   string 要進行編碼的字符
  例子
   下面的程序:
  < %= Server.HTMLEncode("The paragraph tag: ") %>

  輸出為:
  The paragraph tag:
  注意 程序執行后在瀏覽器中看到的是:
  The paragraph tag:
  但是如果你用"查看源文件"看一下的話,源代碼就不是了.
MapPath
  MapPath 方法將相對路徑轉化為服務器上的物理路徑
  語法
  Server.MapPath( Path )

  參數
  Path
  相對路徑。這個路徑是以"/"或"\"開頭的路徑,如果這個路徑中沒有"\",那么MapPath方法就會返回以當前目錄為基礎的路徑。
  講解
  MapPath 方法不能檢查路徑在這個服務器下是否存在。因為 MapPath 轉化路徑時是不管這個路徑是否在這個服務器下存在的。
  你能夠用它來將一個相對路徑轉化為一個物理路徑,然后再在這個路徑下進行各種操作。
  Example
  在下面的例子中,data.txt文件存在 C:\Inetpub\Wwwroot\Script 目錄中,而且一個test.asp 文件包括下面的代碼。C:\Inetpub\Wwwroot 是該服務器的主目錄 。
  下面的例子中,首先用環境變量"PATH_INFO"獲得當前文件的物理路徑。
  下面是Script 代碼:
  < %= server.mappath(Request.ServerVariables("PATH_INFO"))%>

  顯示為:
  c:\inetpub\wwwroot\script\test.asp
  因為下面的例子中路徑參數沒有以"/"開頭,所以它是以當前目錄轉化的,asp文件是放在C:\Inetpub\Wwwroot\Script中的.以下是 scripts的內容:
  < %= server.mappath("data.txt")%>
  < %= server.mappath("script/data.txt")%>

  顯示為:
  c:\inetpub\wwwroot\script\data.txt
  c:\inetpub\wwwroot\script\script\data.txt

  以下的兩個例子是以"/"開頭的.以下是scripts的內容:
  < %= server.mappath("\script")%>

  顯示為:
  c:\inetpub\wwwroot\script\data.txt
  c:\inetpub\wwwroot\script

  直接用"/"或"\"就會得到服務器的主目錄:
  < %= server.mappath("\")%>

  顯示為:
 
  c:\inetpub\wwwroot
  c:\inetpub\wwwroot

  Transfer
  transfer 方法會把一個正在執行的asp文件的所有信息傳給另外一人asp文件。
  語法
  Server.Transfer (path)

  參數
  Path
  將要接收信息的asp文件的位置。
  要點
  當你調用Server.Transfer時,所有內建對象的狀態信息都會包含在這次傳送之中。這就是說,所有在保存在Session或Application中的信息都會被傳送,而且,所有當前請求的信息都會被接收信息的asp文件所接受。
  Example
  下面的例子示范了從一個asp文件傳送到另一個asp文件例子!
  ASP1

< % Dim sessvar1 Response.Write Session.SessionID
 Response.Write ("")
 Response.Write("I am going to ASP2 ")
 Server.
Transfer
("/Myasps/ASP2.asp")
% >
 
 ASP2
< % Response.Write Session.SessionID %>
  URLEncode
  URLEncode 方法可以將指定字符串進行URL編碼。
  語法
  Server.URLEncode( string )

  參數
  string 指定要轉化的字符串
  Example
  下面是代碼:
  < % Respones.Write(Server.URLEncode("http://www.microsoft.com")) % >

  顯示為:
  http%3A%2F%2Fwww%2Emicrosoft%2Ecom
  屬性:ScriptTimeout
  ScriptTimeout 屬性規定了程序的最大運行時間。
  語法
  Server.ScriptTimeout = NumSeconds

  參數
  NumSeconds
  規定了程序的最大的運行時間(以秒計算)。缺省值是90秒
  Remarks
  一個缺省的Scritpt Timeout的值會能過ASPScriptTimeOUT屬性來設置在Web sertvic 或 Web server上。在程序中,ScriptTimeout屬性的值不能小于這個缺省值。舉個例子吧,如果NumSeconds我們設置為10秒,而缺省值為90秒,那么程序就會中止在90秒以后,而不是10秒以后的。同樣,如果我們設置ScriptTimeout的值為100秒,那么,程序就會在100秒之后中止,而不是90秒。
  Example
  下面的例了中程序將被設置為100秒后自動中止。
  < % Server.ScriptTimeout = 100 %>

  下面的例子中將重新得到ScriptTimeout的值,然后把它存在Timout變量中
  < % TimeOut = Server.ScriptTimeout %>

現在版本詳情參見:

http://baike.baidu.com/view/2616.htm

聯系電話:
13501155864
技術QQ:924159801
咨詢QQ:289353499
MSN:
bjhappy2008@msn.com
Mail:
i5wangcom@sina.com