共找到3條詞條名為asp的結果 展開

asp

動態伺服器頁面

ASP即Active Server Pages,是MicroSoft公司開發的伺服器端腳本環境,可用來創建動態互動式網頁並建立強大的web應用程序。當伺服器收到對ASP文件的請求時,它會處理包含在用於構建發送給瀏覽器的HTML(Hyper Text Markup Language,超文本置標語言)網頁文件中的伺服器端腳本代碼。除伺服器端腳本代碼外,ASP文件也可以包含文本、HTML(包括相關的客戶端腳本)和com組件調用。

ASP簡單、易於維護,是小型頁面應用程序的選擇,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情況下, ASP甚至可以實現中等規模的企業應用程序。

簡介


asp英文名:Active Server Pages。
ASP是一種伺服器端腳本編寫環境,可以用來創建和運行動態網頁或Web應用程序。ASP網頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。利用ASP可以向網頁中添加互動式內容(如在線表單),也可以創建使用HTML網頁作為用戶界面的web應用程序。

特點優勢

與HTML相比,ASP網頁具有以下特點:
⑴利用ASP可以實現突破靜態網頁的一些功能限制,實現動態網頁技術;
⑵ASP文件是包含在HTML代碼所組成的文件中的,易於修改和測試;
⑶伺服器上的ASP解釋程序會在伺服器端執行ASP程序,並將結果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產生的網頁;
⑷ASP[1]提供了一些內置對象,使用這些對象可以使伺服器端腳本功能更強。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,並在腳本中對這些信息進行處理,然後向web瀏覽器發送信息;
⑸ASP可以使用伺服器端ActiveX組件來執行各種各樣的任務,例如存取資料庫、發送Email或訪問文件系統等;
⑹由於伺服器是將ASP程序執行的結果以HTML格式傳回客戶端瀏覽器,因此使用者不會看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取;
⑺ 方便連接ACCESS與SQL資料庫;
⑻開發需要有豐富的經驗,否則會留出漏洞,讓駭客(cracker)利用進行注入攻擊。
ASP也不僅僅局限於與HTML結合製作WEB網站,而且還可以與XHTML和WML語言結合製作WAP手機網站。但是其原理也是一樣的。

工作原理

當在Web站點中融入ASP功能后,將發生以下事情:
1、用戶向瀏覽器地址欄輸入網址,默認頁面的擴展名是.asp。
2、瀏覽器向伺服器發出請求。
3、伺服器引擎開始運行ASP程序。
4、ASP文件按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。
5、頁面信息發送到瀏覽器。

發展簡史

從1996年ASP誕生到現在已經過去了18年。在這短短的15年中,ASP發生了重大的變化,直到現在的ASP。
asp的第一版是0.9測試版,自從1996年ASP1.0誕生,它給Web開發界帶來了福音。早期的Web程序開發是十分繁瑣的,以至於要製作一個簡單的動態頁面需要編寫大量的C代碼才能完成,這對於普通的程序員來說有點太難了。而ASP卻允許使用VBScript這種的簡單腳本語言,編寫嵌入在HTML網頁中的代碼。在進行程序設計的時候可以使用它的內部組件來實現一些高級功能(例如Cookie)。它的最大的貢獻在於它的ADO(ActiveX Data Object),這個組件使得程序對資料庫的操作十分簡單,所以進行動態網頁設計也變成一件輕鬆的事情。因此一夜之間,Web程序設計不再是想像中的艱巨任務,彷彿很多人都可以一顯身手。
到了1998年,微軟發布了ASP 2.0。它是Windows NT4 Option Pack的一部分,作為ⅡS 4.0的外接式附件。它與ASP 1.0的主要區別在於它的外部組件是可以初始化的,這樣,在ASP程序內部的所有組件都有了獨立的內存空間,並可以進行事務處理。
到了2000年,隨著Windows 2000的成功發布,這個操作系統的ⅡS 5.0所附帶的ASP 3.0也開始流行。與ASP 2.0相比,ASP 3.0的優勢在於它使用了COM+,因而其效率會比它前面的版本要好,並且更穩定。
2001年,ASP·NET出現了。在剛開始開發的時候,它的名字是ASP+,但是,為了與微軟的·NET計劃相匹配,並且要表明這個ASP版本並不是對ASP 3.0的補充,微軟將其命名為ASP·NET。ASP·NET在結構上與前面的版本大相徑庭,它幾乎完全是基於組件和模塊化的,Web應用程序的開發人員使用這個開發環境可以實現更加模塊化的、功能更強大的應用程序。

運行特點

ASP NET可以運行在Web應用軟體開發者的幾乎全部的平台上。通用語言的基本庫,消息機制,數據介面的處理都能無縫的整合到ASP NET的Web應用中。ASP NET同時也是language-independent語言獨立化的,所以,你可以選擇一種最適合你的語言來編寫你的程序,或者把你的程序用很多種語言來寫,現在已經支持的有C#,VB.NET,Jscript,managedC++,J#。將來,這樣的多種程序語言協同工作的能力保護您現在的基於COM+開發的程序,能夠完整的移植向ASP NET。
開發語言
ASP NET常用的主要有兩種開發語言,VB NET和C#,C#相對更為常用,因為是.NET獨有的語言,VB NET則為以前VB程序設計,適合於以前VB程序員,如果新接觸.NET,沒有其他開發語言經驗,建議直接學習C#。

核心內涵

ASP(Application Service Provider,應用軟體租賃服務提供者),即是指透過網路以租賃方式提供應用軟體服務的從業者,即是指業者以應用軟體為主體,透過網路一對多地傳遞服務,這種以服務為主的交易模式促使企業可藉由租賃的方式,以更符合成本效益的方式擁有軟體的使用權,並且亦能因為業者集中式的管理而大幅降低企業維護的成本。
基本上,ASP即具有“軟體服務化、服務網路化”,“資訊委外服務與網路結合”與“產品通路化、通路產品化”等三大特性,其甚至可以被視為是ISP(InternetService Provider)與ITS(Information Technology Service)的結合.
根據流行的觀點,ASP有如下五個核心內涵:
a. ASP著重應用為中心,提供對於應用方面的訪問和管理。
b. ASP服務可以為用戶提供沒有在伺服器、人員、系統和系統授權等前期資源投入情況下就可以在“定製”的全新應用系統環境進行訪問的服務,如ISP,而這樣的服務一般按月份ASP收取服務費。
c. ASP採用集中管理的方式---ASP一般都有一個管理中心,所有的客戶通過INTERNET來進行遠程訪問,獲得技術支持和諮詢服務。
d. 一對多的服務,也就是講,ASP提供的是標準化的產品包,產品都是最低程度的自定義或者沒有實現客戶定製化,對於行業用戶來講已經達到實用方便的標準。
e. 按照合同交付,在ASP客戶的眼中,ASP是一家根據客戶協議內容提供相關服務,保證應用服務系統服務可以得到確實履行的機構。
生存
從大的方面來講,困擾國內企業生存、發展的核心問題是管理問題。隨著網際網路路的普及和應用的深入,企業用戶可以隨時隨地直接租用ASP的伺服器和軟體系統來進行自己的業務管理,這樣做的好處在於;第一,企業可以節省大筆用於IT建設方面的資金,大幅度降低企業管理信息化的成本。第二,ASP的用戶可以採用各種方式獲得應用和服務,軟體類服務產品完全可以通過網路在非常短的時間內組成一個完善的、高效的、先進的企業管理系統,迅速獲得企業一體化的運營管理方案。
網路經濟發展突飛猛進,電子商務一日千里,網路和網站從門戶到內容、從注意力到垂直性,目前逐漸轉向熱衷ASP也是一個主要的原因。
筆者資料中,國內最早對ASP觸電的是網友“飛鳥”,在1998年6月自發組織了研究、交流和探討ASP技術的“飛鳥之家”,現在已經發展成為chinaasp com,成為國內最早的ASP應用技術服務提供商網站。上海的互易網路有限公司結合國內實際情況,推出了為國內企業服務的ASP平台互易網,向企業提供以電子商務為核心的,企業內、外部網路設施和應用的遠程構架和託管服務,創造虛擬企業門戶(EP)直接將ASP應用到商業增殖環節中去。
此外,ISP也全面轉向ASP的懷抱,成為ASP進一步發展的產物。軟體商對於ASP更是情有獨鍾。業界最新的消息是,中國第三電信“網通”已經制定ASP發展戰略,國內最大的管理諮詢公司“漢普”將把旗下八個子公司定位在企業內部資源計劃管理(ERP)領域的ASP中,北京“聯成互動”瞄準客戶關係管理(CRM)領域的ASP,北京“數碼方舟”定位在網路辦公的ASP,HP正在和中國建設銀行討論共建金融領域的ASP。
ASP正在IT經濟大潮中顯山露水,其發展前景不可估量。
問題
以網路服務商、軟體廠商和ISP為主力的各種IT角色,正在根據自己的優勢條件出發對ASP領域進行多種方面的嘗試。就目前階段來講,ASP提供的服務不計其數五花八門,沒有標準化和量化的概念,硬體廠商向ASP的“土壤”和勢力方向靠攏,軟體廠商和ISP則直接參與到ASP業務的第一線。
筆者估計,經過一段時間的試探和發展,ASP將向服務集成方面發展,產品和服務初步的標準化將很快建立起來,接著進入到市場細化和標準制定、ASP產品成熟時期,ASP的穩步增長,最終將成為IT行業商務模式的核心!
目前在ASP發展的道路上,主要面臨的問題是觀念的轉變方面:用租賃代替購買,服務集成代替產品經銷商、服務經濟代替產品經濟等等。具體到實際方面來講,安全和服務的質量是ASP和客戶共同關心的頭等大事,要實現ASP提出的“租賃高科技”的口號,ASP任重而道遠!

安裝與配置

安裝ⅡS
若操作系統中還未安裝ⅡS伺服器,可打開“控制面板”,然後單擊啟動“添加/刪除程序”,在彈出的對話框中選擇“添加/刪除Windows組件”,在Windows組件嚮導對話框中選中“Internet信息服務(ⅡS)”,然後單擊“下一步”,按嚮導指示,完成對ⅡS的安裝
啟動ⅡS
Internet信息服務簡稱為ⅡS,單擊Windows開始菜單---所有程序---管理工具---Internet信息服務(ⅡS)管理器,即可啟動“Internet信息服務”管理工具。
配置ⅡS
ⅡS安裝后,系統自動創建了一個默認的Web站點,該站點的主目錄默認為C:\Inetpub\wwwroot。
用滑鼠右鍵單擊“默認Web站點”,在彈出的快捷菜單中選擇“屬性”,此時就可以打開站點屬性設置對話框,在該對話框中,可完成對站點的全部配置。
父路徑
單擊“主目錄”標籤,切換到主目錄設置頁面,該頁面可實現對主目錄的更改或設置。注意檢查啟用父路徑選項是否勾選,如未勾選將對以後的程序運行有部分影響。主目錄—配置---選項。
主頁文檔
單擊“文檔”標籤,可切換到對主頁文檔的設置頁面,主頁文檔是在瀏覽器中鍵入網站域名,而未制定所要訪問的網頁文件時,系統默認訪問的頁面文件。常見的主頁文件名有index.htm、index.html、index.asp、index.php、index.jsp、default.htm、default.html、default.asp等ⅡS默認的主頁文檔只有default.htm和default.asp,根據需要,利用“添加”和“刪除”按鈕,可為站點設置所能解析的主頁文檔。
ⅡS服務
在Internet信息服務的工具欄中提供有啟動與停止服務的功能。單擊 可啟動ⅡS伺服器;單擊 則停止ⅡS伺服器。

技術比較

在ASP NET流行之前,最常用的三種動態網頁語言有VBscript,JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。
簡 介
ASP全名Active Server Pages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java script)作為自己的開發語言。
PHP是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法,並融合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支持目前絕大多數資料庫,PHP、MySQL資料庫和Apache Web伺服器是一個比較好的組合。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點。自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代網站開發語言,Sun公司藉助自己在Java上的不凡造詣,將Java從Java應用程序和JavaApplet之外,又有新的碩果,就是JSP,Java ServerPage。JSP可以在Servlet和JavaBean的支持下,完成功能強大的站點程序。
比較
三者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成Servlet並由Java虛擬機解釋執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。在ASP、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP、PHP、JSP三者都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。[2]

內置函數

ASP常用內置函數在ASP中,把帶有返回值的這樣的一段代碼叫做函數。例如通過編寫一段代碼計算出一個自然數是否是質數,返回給調用程序,由於調用程序需要知道那個自然數是否是質數,所以必須要返回一個值。
1,日期/時間函數
這些函數包括對“年”、“月”、“日”、“時”、“分”、“秒”、“星期”等的顯示。
⑴Now函數:根據計算機系統設定的日期和時間,返回當前的日期和時間值。使用方法now();
⑵Date函數:只返回當前計算機系統設定的日期值。使用方法:date();
⑶Time函數:只返回當前計算機系統設定的時間值。使用方法:time();
⑷Year函數:返回一個代表某年的整數。使用方法:year(date),其中date參數是任意的可以代表日期的參數,比如“year(date())”就表示是從“date()”得出的日期中提取其中“年”的整數。
另外,還可以這樣應用:“year(#520,2006#)”表示提取“2006年5月20日”中“年”的整數值。關於“520,2006”,也可使用“5-20-2006”、“5/20/2006”等形式表現,即“某月某日”和“某年”的組合。同時注意使用“#”進行包括以表示日期值。
⑸Month函數:返回1到12之間的整數值,表示一年中某月。使用方法:month(date)。關於參數date的說明和year函數相同。但要注意日期的正確性,比如“#13-31-2006#”,根本就沒有“13”月,肯定是錯誤的了。
⑹Day函數:返回1到31之間的整數值,表示一個月中的某天。使用方法:day(date)。關於參數date的說明和year函數相同。同樣要注意日期的正確性,比如“#2-30-2006#”其中對“2”月定義的“30”日這天就是錯誤的。
⑺Hour函數:返回0到23之間的整數值,表示一天中的某個小時。使用方法:hour(time)。其中參數time是任意的可代表時間的表達式。比如“hour(time())”就表示是從“time()”得出的時間中提取其中“小時”的整數。同樣,參數time還可以這樣應用“hour(#11:45:50#)”表示從“11”時“45”分“50”秒中提取當前小時數。當然,定義的時間要符合時間的規範。
⑻Minute函數:返回0到59之間的整數值,表示一小時中的某分鐘。使用方法:minute(time)。time參數的說明和hour函數相同。
⑼Second函數:返回0到59之間的整數值,表示一分鐘中的某秒。使用方法:second(time)。time參數的說明和hour函數相同。
⑽Weekday函數:返回一個星期中某天的整數。使用方法:weekday(date)。關於參數date的說明和year函數相同。該函數返回值為“1”到“7”,分別代表“星期日”、“星期一”……“星期六”。比如當返回值是“4”時就表示“星期三”。
⑾WeekDayName函數:返回一個星期中具體某天的字元串。相對weekday函數而言即翻譯出“星期幾”,使用方法:weekdayname(weekday)。參數weekday即星期中具體某天的數值。比如“weekdayname(weekday(date()))”就表示當前是“星期幾”。因為“date()”表示的是當前的時間,而“weekday(date())”就表示的是一星期中具體某天的整數。
當然weekdayname函數最終顯示的字元串內容還與當前操作系統語系有關,比如中文操作系統將顯示“星期一”這類的中文字元,而英文操作系統則顯示為“Mon”(Monday簡寫)。
此外,在VBScript中還有一些關於時間間隔的計算函數:
⑴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-2010:00:00")就表示2005年5月20號上午10點前的12小時的日期時間:2005-5-19 22:00:00。
⑵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,字元串處理函數
在腳本的功能處理中,通常需要對一些字元串進行一些修飾性處理。比如過濾掉字元串中的敏感字眼以符合最終顯示的要求;又比如一段較長的字元串,需要提取開頭的幾個字元時。
⑴Asc函數:返回字元串中第一個字母對應的ANSI字元代碼。使用方法:asc(string)。其中string參數表示字元串。
⑵Chr函數:返回指定了ANSI 字元代碼對應的字元。使用方法:chr(chrcode)。參數chrcode是相關的標識數字。該函數的功能和asc函數形成對應。
比如:asc(“a”)表示小寫字母“a”的ANSI字元“97”;同樣chr(97)表示的就是“小寫字母a”。另外chr(chrcode)中參數chrcode值為0到31的數字時,表示不可列印的ASCⅡ碼。比如“chr⑽”表示換行符,“chr⒀”表示回車符等,這常用於輸入和顯示格式的轉換中。
⑶Len函數:返回字元串內字元的數目(位元組數)。使用方法:len(string)。比如len(“love”)的值就是4。
⑷LCase函數:返回所有字元串的小寫形式。使用方法:lcase(string)。比如lcase(“CNBruce”)返回為“cnbruce”。
⑸UCase函數:返回所有字元串的大寫形式。與lcase函數形成對應。同樣,ucase(“CNBruce”)返回為“CNBRUCE”。
Trim函數、LTrim函數和RTrim函數:分別返回前導和後續不帶空格、前導不帶空格或後續不帶空格的字元串內容。比如:
trim(“ cnbruce ”)返回為“cnbruce”,前導和後續都不帶空格;
ltrim(“ cnbruce ”)返回為“cnbruce ”,前導不帶空格;
rtrim(“ cnbruce ”)返回為“ cnbruce”,後續不帶空格;
該函數常用於註冊信息中,比如確保註冊用戶名前或后的空格。
⑺Left函數:返回從字元串的左邊算起的指定數目的字元。使用方法:left(string,length)。比如left(“brousce”,5)返回為“brous”,即前五位字元。
⑻Right函數:返回從字元串的右邊算起的指定數目的字元。使用方法:right(string,length)。比如right(“brousce”,4)返回為“usce”,即后四位字元。
⑼instr函數:返回某字元串在另一字元串中第一次出現的位置。比如現在查找字母“A”在字元串“A110B121C119D1861”中第一次出現的位置,則可以 instr("A110B121C119D1861","A")
⑽Mid函數:從字元串中返回指定數目的字元。比如現在的“110”則應該是從字元串“A110B121C119D1861”的第2位取得3個單位的值:mid("A110B121C119D1861",2,3)
⑾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(array) 返回數組的最小索引
Ubound(array) 返回數組的最大索引
CreateObject(class) 創建一個對象
GetObject(pathfilename) 得到文件對象

函數介紹

函數array
功能:創建一個數組變數
格式:array(list)
參數:list 為數組變數中的每個數值列,中間用逗號間隔
例子:
<% i = array ("1","2","3") %>;;
結果: i 被賦予為數組
2.函數Cint()
\\功能:將一表達式/其它類型的變數轉換成整數類型(int)
格式:Cint(expression)
參數:expression 是任何有效的表達式/其它類型的變數
例子:
<%
f = "234"
response.write cINT(f) + 2
%>;;
結果: 236
函數Cint()將字元"234"轉換 成整數234.如果表達式為空,或者無效時,返回值為0;
3.函數Creatobject()
功能:創建及返回一個ActiveX對象.
格式:Creatobject(obname)
參數bname 是對象的名稱
例子:
<%
Set con = Server.CreateObject("ADODB.Connection")
%>;;
結果:
4.函數Cstr()
功能:將一表達式/其它類型的變數轉換成字元類型(string)
格式:Cstr(expression)
參數:expression是任何有效的表達式/其它類型的變數
例子:
<%
s = 3 + 2
response.write "The result is: " &;; cStr(s)
%>;;
結果:函數Cstr()將整數 5 轉換 成字元"5".
5.函數Date()
功能:返回當前系統(server端)的日期
格式: Date()
參數:無
例子<% date () %>;;
結果:05/10/00
5.1 Instr()
函數返回字元或字元串在另一個字元串中第一次出現的位置.
表達式 Instr([start,] strToBeSearched,strSearchFor [,compare])
允許數據類型:Start為搜索的起始值,strToBeSearched接受搜索的字元串 strSearchFor要搜索的字元.compare比較方式(詳細見ASP常數)
實例:<%
strText = "This is a test!!"
pos = Instr(strText,"a")
response.write pos
%>
返回結果:9
6.函數Dateadd()
功能:計算某個指定的時間和
格式: dateadd(timeinterval,number,date)
參數:timeinterval是時間單位(月,日..); number是時間間隔值,date是時間始點.
例子:
<%
currentDate = #8/4/99#
newDate = DateAdd("m",3,currentDate)
response.write newDate
%>;; <%
currentDate = #12:34:45 PM#
newDate = DateAdd("h",3,currentDate)
response.write newDate
%>;;
結果:
11/4/99
3:34:45 PM
其中
"m" = "month";
"d" = "day";
如果是currentDate 格式,則,
"h" = "hour";
"s" = "second";
7.函數Datediff()
功能:計算某量個指定的時間差
格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])
參數: timeinterval 是時間單位; date1,date2是有效的日期表達式,firstdayofweek,firstdayofyear 是任意選項.
例子:
<%
fromDate = #8/4/99#
toDate = #1/1/2000#
response.write "There are " &;; _
DateDiff("d",fromDate,toDate) &;; _
" days to millennium from 8/4/99."
%>;;
結果:There are 150 days to millennium from 8/4/99.
8.函數day()
功能:返回一個整數值,對應於某月的某日
格式: day(date)
參數: date是一個有效的日期表達式;
例子<% =day(#8/4/99#) %>;;
結果:4
函數
功能:格式化日期表達式/變數
格式: formatdatetime(date[,nameformat])
參數: date為有效的日期表達式/變數;nameformat是指定的日期格式常量名稱.
例子<% =formatdatetime("08/04/99",vblongdate) %>;;
結果:Wednesday,August 04,1999
說明:
描述
返回表達式,此表達式已被格式化為日期或時間。
語法
FormatDateTime(Date[, NamedFormat])
FormatDateTime 函數的語法有以下參數:
參數 描述
Date 必選項。要被格式化的日期表達式。
NamedFormat 可選項。指示所使用的日期/時間格式的數值,如果省略,則使用 vbGeneralDate。
設置
NamedFormat 參數可以有以下值:
常數 值 描述
vbGeneralDate 0 顯示日期和/或時間。如果有日期部分,則將該部分顯示為短日期格式。如果有時間部分,則將該部分顯示為長時間格式。如果都存在,則顯示所有部分。
vbLongDate 1 使用計算機區域設置中指定的長日期格式顯示日期。
vbShortDate 2 使用計算機區域設置中指定的短日期格式顯示日期。
vbLongTime 3 使用計算機區域設置中指定的時間格式顯示時間。
vbShortTime 4 使用 24 小時格式(hh:mm)顯示時間。
說明
下面例子利用 FormatDateTime 函數把表達式格式化為長日期型並且把它賦給 MyDateTime:
Function GetCurrentDate
"FormatDateTime 把日期型格式化為長日期型。
GetCurrentDate = FormatDateTime(Date, 1)
End Function
函數布爾值
功能:返回一個布爾值,判斷變數是否為數字變數,或者是可以轉換成數字的其它變數.
格式:isnumeric(expression)
參數:expression 是任意的變數.
例子:
<%
i="234"
response.write isnumeric(i)
%>;;
結果: true.
函數1
功能:返回一個布爾值,判斷變數是否為對象的變數,
格式: isobject(expression)
參數: expression 是任意的變數.
例子:
<%
set con =server.creatobject("adodb.connection")
response.write isobject(con)
%>;;
結果: true
函數2
功能:返回一個數組的下界.
格式:Lbound(arrayname[,dimension])
參數:arrayname 是數組變數,dimension 是任意項
例子:
<%
i = array("1","2","3")
response.write lbound(i)
%>;;
結果:0
函數3
功能:將一字元類型變數的字元全部變換小寫字元.
格式:Lcase(string)
參數:string是字元串變數
例子:
<%
str="THIS is Lcase!"
response.write Lcase(str)
%>;;
結果:this is lcase!
函數4
功能:截取一個字元串的前部分;
格式:left(string,length)
參數:string字元串,length截取的長度.
例子: <% =left("this is a test!",6) %>;;
結果:this i
16.函數len()
功能:返回字元串長度或者變數的位元組長度
格式:len(string *varname)
參數:string字元串;varname任意的變數名稱
例子:
<%
strtest="this is a test!"
response.write left(strtest)
%>;;
結果:15
函數5
功能:去掉字元串前的空格.
格式:ltrim(string)
參數:string字元串.
例子: <% =ltrim (" this is a test!")
結果:this is a test!
函數6
功能:從字元串中截取字元串.
格式:mid(string,start [,length])
參數:string字元串,start截取的起點,length要截取的長度.
例子:
<%
strtest="this is a test, Today is Monday!"
response.write mid(strtest,17,5)
%>;;
結果:Today
19.函數minute()
功能:返回一數值,表示分鐘
格式:minute(time)
參數: time是時間變數
例子lt;% =minute(#12:23:34#) %>;;
結果:23
20.函數month()
功能:返回一數值,表示月份
格式:month(time)
參數:time是日期變數
例子<% =month(#08/09/99) %>;;
結果:9
21.函數monthname()
功能:返回月份的字元串(名稱).
格式:Monthname(date [,abb])
參數: date是日期變數,abb=true時 則月份的縮寫,
例子:
<% =monthname(#4/5/99#) %>;;
結果:April
22.函數Now()
功能:返回系統的當前時間和日期.
格式:now()
參數:無
例子:
<% =now() %>;;
結果: 05/10/00 8:45:32 pm
23.函數:replace()
功能:在字元串中查找,替代指定的字元串.
格式:replace(strtobesearched,strsearchfor,strreplacewith [,start[,count[,compare]]])
參數:strtobesearched是字元串; strsearchfor是被查找的子字元串;strreplacewith 是用來替代的子字元串.start,count,compare 是任意選項.
例子:
<%
strtest="this is an apple."
response.write replace(strtest,"apple","orange")
%>;;
結果:this is an orange.
24.函數right()
功能:截取一個字元串的後部分
格式:right(string,length)
參數:string字元串,length截取的長度.
例子:
<%
strtest="this is a test!"
response.write right(strtest,3)
%>;;
結果:st!
25.函數rnd()
功能:返回一個隨機數值
格式:rnd[(number)]
參數:number是任意數值.
例子:
<%
randomize()
response.write rnd()
%>;;
結果:0/1數值之一,無randomize(),則不能產生隨機數.
26.函數round()
功能:完整數值
格式:round(expression[,numright])
參數:expression數字錶達式;numright任意選項.
例子:
<%
i=12.33654
response.write round(i)
%>;;
結果: 1227.函數rtrim()功能:去掉字元串后的空格. 格式:rtrim(string)參數:string 是字元串 例子: <% response.write rtrim("this is a test! ") %>;;結果:this is a test!
28.函數second()
功能:返回一個整數值.
格式:second(time)
參數:time是一個有效的時間表達式;
例子lt;% =second(# 12:28:30#) %>;;
結果:30
29.函數strReverse()
功能:返回與原字元串排列逆向的字元串.
格式:strreverse(string)
參數:string是字元串
例子<% =strreverse("this is a test!")
結果:!tset a si siht
30.函數time()
功能:返回當前系統的時間值.
格式:time()
參數:無
結果:9:58:28 Am
31.函數trim()
功能:刪去字元串前,后的空格.
格式:trim(string)
參數:string 字元串.
例子:
<%
strtest="this is a test! "
response.write trim(strtest)
%>;;
結果:this is a test!
32.函數UBound()
功能:返回一個數組的上界.
格式:Ubound(expression [,dimension])
參數:expression 是數組表達式/數組變數,dimension 是任意項
例子:
<%
i = array("1","2","3")
response.write ubound(i)
%>;;
結果: 2
33.函數:UCase()
功能:將一字元類型變數的字元全部變換成大寫字元.
格式:Ucase(string)
參數:string是字元串變數
例子:
<%
str="THIS is Lcase!"
response.write Lcase(str)
%>;;
結果:THIS IS LCASE!
34.函數Vartype()
功能:返回變數的常量代碼(整數)
格式:Vartype(varname)
參數:varname是任何類型的變數名稱.
例子:
<%
i=5
response.write vartype(i)
%>;;
結果:2 (2表示整數,須要參考ASP常量代碼.)
35.函數Weekday()
功能:返回一個整數,對應一周中的第幾天.
格式:Weekday(date [,firstofweek])
參數: date為日期變數,firstofweek為任選項.
例子:
<%
d= # 5/9/00 #
response.write weekday(d) %>;;
結果:3(3 表示是星期二)
36.函數weekdayname()
功能:返回字元串,對應星期幾.
格式:weekdayname(weekday[,abb[,firstdayofweek]])
參數:weekday為日期變數,abb,firstdayofweek為任選項.
例子:
<%
d = #8/4/99#
response.write weekdayname(d)
%>;;
結果: Wednesday
37.函數year()
功能:返回日期表達式所在的年份.
格式:year(date)
參數: date是有效的日期表達式
例子:
<% =year(#8/9/99#) %>;;
結果:1999
38.函數Mod()
功能:取餘數.
例子:3 Mod 2
結果:1

提升速度方法

技巧
訪問一個ASP集合來提取一個值是費時的、佔用計算資源的過程。因為這個操作包含了一系列對相關集合的搜索,這比訪問一個局部變數要慢得多。因此,如果打算在頁面中多次使用Request集合中的一個值,應該考慮將其存貯為一個局部變數。例如將代碼寫成下面的形式以加快腳本引擎處理速度:
strTitle=Request.Form("Title")
strFirstName=Request.Form("FirstName")
strLastName=Request.Form("LastName")
If Len(strTitle) Then strTitle=strTitle & " "
If strFirstName="" Then strFullName=strTitle & " " & strLastName
Elseif Len(strFirstName)=1 Then
strFullName=strTitle & strFirstName & ". " & strLastName
Else
strFullName=strTitle & strFirstName & " " & strLastName
End If
技巧之二
如果不是別無選擇,否則不要使用strPage=Request("page")的這樣的形式來獲取參數,因為這將按順序搜索全部的集合—QueryString、Form、Cookies、ClientCertificate、ServerVariable直到發現第一個匹配值的名稱。這樣做比直接訪問適當的集合效率低,並且是不安全的,除非能絕對保證這個值不會出現在另外一個集合中。
例如,可能希望搜索滿足客戶請求的WEB伺服器名稱,這通過出現在每個查詢中的Request.ServerVariables集合中尋找“SERVER_NAME”來實現。然而,假如其他的集合也包含名為“SERVER_NAME”的值(鍵名不區分大小寫),當使用Request("server_Name")時,就會得到錯誤的結果。總而言之,應儘可能直接訪問適當的集合。
技巧之三
在費時操作前使用Response.IsClientConnected屬性
使用Response.IsClientConnected是觀察用戶是否仍連到伺服器並正在載入ASP創建的網頁的有用方式。如果用戶斷開連接或停止下載,我們就不用再浪費伺服器的資源創建網頁,因為緩衝區內容將被ⅡS丟棄。所以,對那些需要大量時間計算或資源使用較多的網頁來說,值得在每一階段都檢查遊覽者是否已離線:
…… Code to create first part of the page
If Response.IsClientConnected Then
Response.Flush
Else
Response.End
End If
…… Code to create next part of page
技巧之四
通常面言,數據構成了WEB站點的實際內容。所以,優化ADO操作以加速ASP代碼執行,十分有用:
a.僅選擇所需的列:當打開ADO記錄集時,除非需要獲得所有的列,否則不應自動地使用表名(即SELECT*)。使用單獨的列意味著將減少發送到伺服器或從伺服器取出的數據量。即使需要使用全部列,單獨地命名每個列也會獲得最佳的性能,因為伺服器不必再解釋這些列的名字。
b. 儘可能的使用存儲過程。存儲過程是預先編譯的程序,含有一個已經準備好的執行計劃,所以比SQL語句執行更快。
c. 使用適當的游標和鎖定模式。如果所做的全部工作只是從記錄集中讀取數據,並將其顯示在屏幕上,那麼就使用預設的只能前移、只讀的記錄集。ADO用來維護記錄和鎖定的細節的工作越少,執行的性能就越高。
d. 使用對象變數。當遍歷記錄集時一個肯定能提高性能的方法是使用對象變數指向集合中的成員。例如:
While Not RsGc.EOF
Response.Write "工程名稱:" & RsGc("GcMC") & "(工程代碼:" & RsGc("GcCode") & ")
"
RsGc.MoveNext
Wend
可以用改寫為下面的代碼以加快執行:
set GcMc=RsGc("GcMc")
set GcCode=RsGc("GcCode")
While Not rsGc.EOF Response.Write "工程名稱:" & GcMc & "(工程代碼:" & GcCode & ")
" RsGc.MoveNext
Wend
新的代碼建立了對象變數的引用,所以可以使用對象變數而不是實際的變數,這意味著腳本引擎的工作減少了,因為在集合中進行索引的次數變少了。
技巧五
我們知道,ASP頁面中既可以使用VBScript,也可以使用JScript。但是在同一個頁面上同時使用JScript和VBScript則是不可取的。因為伺服器必須實例化並嘗試緩存兩個(而不是一個)腳本引擎,這在一定程度上增加了系統負擔。因此,從性能上考慮,不應在同一頁面中混用多種腳本引擎。

附錄

前言
ASP使用VBScript或者JScript腳本完成編程,而這兩種腳本本身能力非常有限,利用ASP的幾個內部對象也無法完成較大規模的應用,但是令人興奮的是ASP支持組件技術,類似文件上傳、繪圖、收發電子郵件等工作都可以藉助組件來完成,找到合適的優秀的組件,將使我們的網站功能更加強大。
需要提醒大家的是,組件的安裝應該按需進行,並不是說探針上的對號越多越好。
收發郵件
JMail 組件
Dimac 公司的郵件收發組件,這是一個非常成熟和強大的郵件組件。它不但可以完成發郵件的工作,還可以POP收信,並支持收發郵件時的PGP加密,內置一個群發郵件的對象,可以使群發編程更簡單。
即使是很多其他組件也都能完成的發郵件功能,JMail 的完成也可以稱得上最出色的,除了常見的抄送暗送等多收件人功能外,它還支持添加嵌入式圖片附件,並且可以從URL讀取文件作為附件。
JMail 的免費版本擁有全部完成的發郵件功能,只在收郵件和加密郵件等我們不常用到的方面進行了限制。
因為非常喜歡這個組件,阿江我在2002年3月就把這個組件的用戶指南翻譯了一下,可惜當時有一些地方不太理解,翻譯是錯誤的,還沒有來得及改過來,不過明眼人是能看出來的。
ASPEmail 組件
ASPEmail 組件也是常用的發郵件組件之一,不過因為售價不菲,國內使用的用戶還不多。從功能上說,這也是一個功能全面的發郵件組件。2002年的時候它不支持收信,不知道現在是否支持了。
文件上傳組件
文件上傳組件最近幾年是越來越多,國內很多ASP愛好者編寫了自己的上傳組件。為了提高安全性,動網等商業機構也推出了免費的文件上傳組件。
SA-FileUp 組件
SoftArtisans 公司的文件上傳組件,它是早期國內的虛擬主機商默認安裝的組件之一,很多老程序員都有利用它編程的經歷。安裝后自動安裝一個文件管理組件,可以像FSO一樣管理伺服器上的文件。
LyfUpload 組件
國產的老牌的流行的上傳組件,可惜的是阿江一直沒有嘗試這個組件。下載
其它上傳組件
動網上傳組件; IronSoft系列組件; w3.Upload 組件。
圖像處理組件
對於互動式的網站,網友上傳的圖片往往要經過縮小、加水印等處理,或者有時候我們需要輸出各種圖表,這些都要依靠圖像處理組件。
w3.image 組件
Dimac 公司的圖像組件,較早的圖像組件之一,這個組件很完整的將文字、圖形、畫筆、刷子、顏料桶等對象以組件的形式完成了,所以功能相當強大。它支持的圖像格式和選項也很多,支持透明的動畫,支持直接輸出到客戶端。簡單的縮放、水印等功能更是不在話下。試用版會自動在生成的圖像底部加入8像素高的網址。
xxiyy 圖形組件
兩個耐心和熱情的程序員最近一兩年來的傑作,我是在CSDN社區的ASP區看到並收藏起來的。xxiyy是較早開發圖像組件的程序員之一,早期他還專門開發過一個水印組件。XY.Graphics是由 mikespook & swill 製作,用於動態頁面開發時對BMP、JPG、JPEG、GIF(非動畫、非透明)、PNG(非動畫、非透明)格式圖象進行操作的COM組件。這個組件還有一個很有特色的 ASCⅡArt 方法,可以把圖片轉換為字母模擬的那種,可以在不支持發圖片的論壇玩兒。
截圖組件
鑄劍谷的系列組件也是在CSDN社區碰上的,作者的謙虛和細心使得這個組件日益成為更加優秀的圖像組件。組件可以滿足我們對圖像和圖形組件的絕大部分需要,並且作者在圖像品質上還下了不少工夫。DLL里還內置了一個 FLASH 截圖組件,可以對 FLASH 中任意幀進行截圖,這使 ASP 程序自動生成FLASH縮略圖成為可能。
ASPJpeg 組件
曾經很流行的圖像組件,當時知道它的時候很多人用它來縮放圖片,不知道現在多什麼功能了沒。
其它組件
解壓組件
獃獃ⅡS管理組件可以完成ⅡS 6.0的站點添加、修改、刪除等管理操作,可以管理應用程序池、系統用戶、系統用戶組、文件夾許可權、SERV-U賬戶等。
獃獃文件壓縮解壓組件可以完成基本的文件壓縮和解壓操作,支持設置壓縮率和密碼。
w3.Socket 組件
Dimac 公司免費的 Socket 組件,藉助該組件,您可以通過ASP程序直接完成與目標伺服器的連接,比如可以連接WHOIS伺服器獲取域名的WHOIS信息,連接時間伺服器獲取標準的時間,連接DNS伺服器進行域名解析等,當然前提是你要對相應的網路協議有足夠的了解才行。下載

其他解釋

ASP的意義
即應用服務提供商;真正的意義是利用集中管理的設施為客戶提供應用部署、租賃、託管和外包等各種服務。具體來說,是將各種應用軟體安裝在數據中心(IDC)或伺服器群上,通過網路將應用軟體的功能或基於這些功能的服務,以有償的方式提供給使用者,並由ASP負責管理、維護和更新這些功能和服務,並通過軟體、硬體、網路和專業技術的合理搭配提供給使用者優質完善的服務。隨著全球信息業的興起,ASP已經成為一種逐漸升溫的IT經營模式。
Aspirin
阿斯匹林
Average Selling Price
平均銷售價格
Aspartic acid
天門冬氨酸
ASP全稱
即為“阿里軟體銷售合作夥伴”,是阿里軟體(上海)有限公司管理軟體事業部為推動“錢掌柜”產品市場銷售,更好的為客戶,尤其是中小企業老闆提供產品服務,而設立的一種夥伴合作模式。其主要職責是在授權區域內從事阿里軟體“錢掌柜”系列產品的客戶推動與產品諮詢工作。保證我們的產品讓更多的企業中小企業老闆使用,並為最終用戶提供軟體應用技術服務與指導。
尺寸
ASP:ASP警棍,全稱為ASP戰術警棍,它是美國為執法部隊專門設計製造的可伸縮戰術武器。ASP,是美國武裝系統暨程序公司(Armament System and Procedures,Lnc.,)的英文所寫簡稱。
ASP尺寸分類:16英寸、21英寸、26英寸、31英寸的慣性阻力鎖甩棍,每種長度的伸縮甩棍分別有如下五種版本。A:輕版(輕量版);B:黑色鍍鉻版(黑鉻標準型、重版);C:鍍光亮鉻版(白鉻標準型);E:海軍版;G:鍍金版(18K鍍金)
ASP一直是戰術警棍界的權威,他們的尖端設計使ASP戰術警棍方便攜帶,具有很好的隱蔽性,同時能夠快速打開,投入使用。它具有無以倫比的控制潛質,和令人難以置信的心理威懾能力。先進的材料,精良的生產工藝和完美的裝配使ASP的品質、耐久力和表現力都能夠傲視群雄。現在就來為你自己選擇一根ASP黑色鉻合金或無電鍍不鏽鋼警棍,甩動手腕,縮在筒身裡面的兩段棍身就能利用慣性作用伸展出來;不必擔心在使用中它會縮回去,因為只有在堅硬平面上用特定方法巧妙地正面撞壓棍頂,它才會藉助彈力回縮。壓縮后的警棍可以別在腰帶上,放在手袋中,短小方便。使用超級堅韌的高品質太空鋼材和合金生產,經過精細防鏽處理,強勁可靠。黑色乙烯基合成手柄提供穩定可靠把握的同時,充分展現警棍低調沉穩的傳統風格。機械塑形的手柄表面為你提供非常穩固的把握,絕不打滑。具有很好的耐久力和可靠性,隱蔽性更好
PS:另外,不知道這棍子怎麼用的朋友可以去看《殺破狼》,甄子丹跟吳京對打的時候用的就是ASP,他那個是21寸的海軍版.
適應
Advanced Simple Profile 是為了適應網際網路上流媒體應用的需求而新增加的。它可以在
很大碼率範圍內發布只有一層的基於幀結構的數字視頻信號。採用 AS Profile,在大約
1~2Mbits/s的碼率下,即可達到數字電視的質量。這使得 AS Profile在第三代移動可視電話
和Internet上的視頻服務等領域有很好的應用前景。為實現高效編碼,在 AS Profile中引入
了Advanced Coding Efficiency Profile中所定義的工具。具體而言,即先進補償工具,包括:
1/4像素運動補償(QMC),全局運動補償(GMC)。另一方面,為滿足較低碼率下應用的
要求,提供了 Error Resilience 工具。同時,提供了后處理可選工具:Deblocking Tool 和
Deringing Tool。與Simple Profile相比,AS Profile具有更高的編碼效率;另一方面,由於只
支持單層和矩形VO,因而其實現複雜性低於 Advanced Coding Efficiency Profile。正因為此,
基於MPEG-4 AS profile的硬體系統,以及 ASIC實現,具有很好的應用前景。
一個特定的profile支持一個到幾個視頻對象類型,例如simple profile支持Simple object,
Main profile 支持 simple,core,main 三種類型的對象。每一種對象類型都決定了符合該對
象類型的碼流應該使用那些規定的技術,對編碼器來說,它不能使用這個對象不支持的技術,
對解碼器來說,這個對象規定的技術它都需要支持。

自學書籍

書名:ASP完全自學手冊
圖書編號:1868333
出版社:機械工業 定價:59.0
ISBN:711120581
作者:袁理
出版日期:2007-01-12
版次:1
開本:26cm
簡介:
本書詳細講述了ASP的使用方法,主要內容包括ASP基礎、ASP的運行與開發環境、腳本程序、ASP中的5大對象、ASP的常用組件等。
目錄:
叢書庫
前言
本書光碟代碼使用方法
第1章 ASP基礎
1.1 ASP基礎
1.2 HTML技術概述
1.3 ASP動態網頁的工作流程
1.4 ASP的7大對象
1.5 ASP的開發工具
1.6 編寫第一個ASP Web頁面
第2章 ASP的運行與開發環境
2.1 ASP的運行環境
2.2 ASP開發軟體——Visual InterDev 6.0
第3章 ASP腳本程序
3.1 關於ASP的腳本程序
3.2 認識VBScript
3.3 VBScript的常量與變數
3.4 VBScript的運算符
3.5 VBScript條件語句
3.6 VBScript循環語句
3.7 子過程與函數
3.8 VBScript的內建函數
第4章 ASP中的5大對象
4.1 Request對象
4.2 Response對象
4.3 Server對象
4.4 公共對象Application
4.5 私有對象Session
第5章 ASP的常用組件
5.1 廣告輪顯組件Ad Rotator的概述
5.2 瀏覽器性能組件Browser的應用
5.3 連接目錄組件Content Linking的應用
5.4 計數器組件Page Counter的應用
5.5 文件系統組件FileSyster的應用
第6章 SQL Server應用基礎
6.1 安裝前的準備工作
6.2 SQL Server伺服器
6.3 創建和維護資料庫
6.4 表的操作
6.5 創建索引
6.6 視圖的操作
6.7 存儲過程
第7章 使用ADO組件訪問資料庫
7.1 資料庫簡介
7.2 ADO基本概述
7.3 創建ODBC的數據源名稱文件DSN
7.4 使用連接對象Connection
7.5 使用命令對象Command
7.6 使用記錄集對象RecordSet
第8章 用戶登錄及管理系統
8.1 系統說明
8.2 系統資料庫設計
8.3 用戶登記模塊
8.4 系統主界面
8.5 用戶註冊模塊
8.6 用戶資料修改模塊
8.7 系統管理模塊
8.8 添加用戶模塊
8.9 刪除用戶模塊
8.10 退出登錄模塊
第9章 網路投票系統
9.1 系統說明
9.2 系統資料庫設計
9.3 用戶投票模塊
9.4 投票主要管理模塊
9.5 投票標題管理模塊
9.6 投票項管理模塊
第10章 網路圖片管理系統
10.1 簡單的圖片管理系統
10.2 基於鏈接的圖片管理系統
第11章 搜索引擎系統
11.1 系統說明
11.2 系統資料庫設計
11.3 網站搜索模塊
11.4 網站分類模塊
11.5 網站信息管理模塊
11.6 系統管理模塊
第12章 資源下載及管理系統
12.1 系統說明
12.2 系統資料庫設計
12.3 資源信息顯示模塊
12.4 資源搜索模塊
12.5 資源類別管理模塊
12.6 資源項管理模塊
第13章 在線音樂播放系統
13.1 系統說明
13.2 系統資料庫設計
13.3 系統主界面
13.4 音樂播放頁面
13.5 管理員登錄模塊
13.6 系統管理主界面
13.7 添加曲目頁面
13.8 添加曲目完成頁面
13.9 曲目信息修改頁面
13.10 曲目信息修改完成頁面
13.11 刪除曲目頁面
第14章 網上交易平台
14.1 應用背景
14.2 系統設計
14.3 網站首頁模塊
14.4 品牌店鋪模塊(speciality.asp)
14.5 快速分類模塊
14.6 專題模塊
14.7 用戶模塊
附錄A SQL語言詳解
A.1 數據定義
A.2 查詢
A.3 SQL更新
附錄B 使用JavaScript製作網頁特效
B.1 第一個例子
B.2 基本數據類型
B.3 JavaScript程序構成
B.4 基於對象的JavaScript 語言
B.5 創建新對象
B.6 使用內部對象系統
B.7 窗口及輸入/輸出
B.8 Web頁面信息的交互
附錄C ASCⅡ碼
附錄D 本書涉及到的常式 [3]
WEB技術類別
HTMLXHTMLHTML 5CSSTCP\/IP
XMLXMLXSLXSLTXSL-FO
XPathXPointerXLinkDTD
XML SchemaDOMXFormsSOAP
WSDLRDFRSSWAP
Web Services
Web腳本JavaScriptHTML DOMDHTMLVBScript
AJAXjQueryJSONE4X
WMLScript
Serv腳本SQLASPADOPHP
.NETMicrosoft.NET.NET Mobile
多媒體SMILSVG
網頁技術與標準
文檔呈現語言HTMLXHTMLXMLXForms
DHTML
樣式格式描述語言層疊樣式表XSL
動態網頁技術CGIFastCGIASPASP.NET
ColdFusionJSPPHP
客戶端交互技術ActiveXJava AppletJavaFXAJAX
SilverlightActionScriptFlexAIR
客戶端腳本語言JavaScriptJScriptVBScriptECMAScript
標識定位語言URLURIXPathURL重寫
文檔綱要語言DTDXML Schema

發展歷史


在Internet風行的早期,瀏覽器中顯示的網頁僅是靜態的圖文組合而已,瀏覽者可以在網頁上閱讀信息,但無法進一步地發表意見、查詢信息或進行在線購物等商務活動。為此,人們提出了動態網頁或交互網頁的概念和解決方案。所謂“動態網頁”,是指客戶端瀏覽器和Web伺服器端可以互動,也就是伺服器端可以實時處理瀏覽器端的請求(Request),然後再將處理的結果作為對瀏覽器請求的響應(Response)傳送給瀏覽器。
由於Web程序開發十分複雜,以至於要製作一個簡單的動態頁面也需要編寫大量的C代碼才能完成。於是Microsoft公司於1996年推出一種Web應用開發技術ASP,用於取代對Web伺服器進行可編程擴展的CGI標準。
ASP 1.0作為IIS(Internet Information Server,Internet信息伺服器)的附屬產品免費發送,不久就在Windows平台上廣泛使用。ASP與ADO的結合使開發者很容易地在一個資料庫中建立和打開一個記錄集。
1998年,微軟公司又發布了ASP 2.0。ASP 1.0和ASP 2.0主要區別在於外部組件。有了ASP 2.0和IIS 4.0,就可以建立ASP應用了。
在微軟公司開發的Windows 2000操作系統中就開始帶上了IIS 5.0及ASP 3.0。雖然Windows已經發展到比較高的版本,但是開發領域中依然百分之百採用Windows 2000 Server。Windows 2000包括三個不同的版本:Windows 2000 Professional,Windows 2000 Server和Windows 2000 Advanced Server。按照默認設置安裝Windows 2000 Server,安裝時不用作任何改動,這樣就可配置好ASP的運行環境。

編程開發


硬體環境

ASP程序的運行對硬體環境沒有特別的要求,通常具備能夠滿足Windows操作系統運行要求的硬體設備即可。基本內存容量要求為64MB,建議內存容量為128MB或更多。此外,應該有100MB以上的硬碟空間用來安裝所需的軟體。

軟體環境

在軟體環境方面,因為ASP是Microsoft公司推出的,只有在Microsoft Windows操作系統及其配套的web伺服器軟體的支持下才能運行。Microsoft公司的各種windows操作系統都可以作為ASP的運行平台。其中,在windows 98操作系統下運行的Personal w曲Server,一般簡稱為PWS,而Microsoft Internet Information Server,則簡稱為IIS。

語言特點


1、用VBScript、JavaScript等簡單容易的腳本語言。結合HTML代碼,即可快速完成網站的應用程序,實現動態網頁技術。
2、ASP文件是包含在HTML代碼所組成的文件中的,易於修改和測試,無須編譯或鏈接就可以解釋執行。
3、ASP所使用的腳本語言均在Web伺服器端執行,伺服器上的ASP解釋程序會在伺服器端執行ASP程序,並將結果以HTML格式傳送到客戶端瀏覽器上。
4、ASP提供了一些內置對象,使用這些對象可以使伺服器端腳本功能更強。
5、ASP可以使用伺服器端ActiveX組件來執行各種各樣的任務,例如存取資料庫、發現和那個Email或訪問文件系統等。
6、由於伺服器是將ASP程序執行的結果以HTML格式傳回客戶端瀏覽器,因此使用者不會看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取。

工作原理


ASP中的腳本程序是在伺服器端運行的(而不是在客戶端運行),傳送到瀏覽器上的web頁是在web伺服器上生成的。因此,客戶端瀏覽器並沒有處理這些腳本,web伺服器已經完成了這些腳本的處理,並將標準的HTML頁面傳輸到瀏覽器。ASP解釋器讀取並執行所有在<%和%>標籤之間的腳本代碼,並生成內容。由於只有腳本的執行結果返回到瀏覽器,因此,用戶看不到正在瀏覽的網頁的腳本命令,而只能看到腳本的執行結果。

語言基礎


ASP可以使用兩種腳本語言:VBScript和Jscript(所謂的JScript語言就是微軟版本的JavaScript語言)。
ASP包含內置對象,最常用的是五大對象、一個集合和一個文件。五大對象分別是Response,Request,Session,Application和Server;一個集合是Cookies;一個文件是GIobal.asa。
ASP提供了內置對象和大量可安裝的ActiveX組件。這些對象以及組件都可以用來拓展ASP的功能。在面向對象編程中,對象就是指由當作完整實體的操作和數據組成的變數。在對象中客戶可通過由一組方法或相關函數來訪問對象的數據。
對象一般有方法、屬性、集合和事件。其中,方法決定了可以用這個對象作什麼事情;屬性可以讀取對象狀態或者設置對象狀態;集合是由很多不同的與對象有關係的鍵和值的配對組成的。
Response對象
在ASP中,使用Response對象來根據客戶端不同的請求輸出不同的返回結果。
使用Response.Write方法將輸出傳送至瀏覽器端
Write方法是Response對象中最常用的方法之一,它可以把變數的值發送到用戶端的當前頁面。Write方法的功能量強大,幾乎可以輸出所有的對象和數據。
Write方法中可以嵌入任何HTML標記,只要該標記是合法的,如下例將輸出綠色的漢字和一條水平線:
1
2
3
4
Response.Write""
Response.Write"歡迎您來訪問!"&"
"
Response.Write""
Response.Write"
"
將HTML標記與ASP中的變數恰當的結合使用,可使程序更簡潔易讀,如下例是根據Request對象獲取的數據來創建表格的一行信息:
1
2
<%Response.Write"
"&Request.Form("strUserName")&""_
&Request.Form("intAge")&"
"%>
使用Response.Redirect方法從目前網頁導向至其他網頁
在普通網頁中,可以使用超鏈接的方式來引導訪問者跳轉到另一個頁面,但這個過程須要訪問者單擊一個超鏈接才可以進行。Response對象的Redirect方法則可以自動完成頁面間的跳轉,而訪問者幾乎不會感覺出來。
使用Response.End方法結束程序的執行
End方法使伺服器停止當前腳本的處理並返回當前結果。如果Response對象的Buffer屬性設為True,則End方法立即把緩存中的內容發送到客戶端並清除緩存。
因此,若想取消向客戶端的所有輸出,可以先用Clear方法清除緩存,再用End方法停止腳本的處理。
AddHeader方法用指定的值添加HTML標題。該方法常常向響應添加新的HTTP標題。它並不替代現有的同名標題。一旦標題被添加,將不能刪除。其語法結構如下:
1 Response.AddHeader 標題變數名稱,初始值
為避免命名不明確,標題變數名稱中不能包含任何下劃線字元(_)。由於HTTP協議要求所有的標題都必須在內容之前發送,所以必須在任何輸出(例如由HTML或write方法生成的輸出)發送到客戶端之前在腳本中調用AddHeader。但當Buffer屬性被設置為True時例外。若輸出被緩衝,則可以在腳本中的任何地方調用AddHeader方法,只要它在Flush之前執行即可。
Response.CIear方法
Clear方法用於清除緩衝區的所有HTML輸出,但它只刪除響應正文而不刪除響應標題。在伺服器上的程序產生錯誤時,可用clear方法來處理錯誤情況。
Response對象
Response對象的屬性主要包括Buffer、ContentType等。
Buffer屬性
在ASP程序中,可以為頁面在伺服器端設置一個緩存。緩存區是一個存儲區,它可以在其釋放數據之前容納該數據一段時間,緩衝區的優點在於它的行為可以進行控制。
設置緩存后,伺服器端可減少與客戶端連接的次數而提高整體的響應速度,並可在滿足某些條件(如腳本處理不正確或用戶沒有適當的安全證書)時撤銷已經處理的結果,而不會出現響應完成一部分就停止的狀況。
緩存功能的打開和關閉是通過Response對象的Buffer屬性來完成的。若將Buffer屬性設為False,則關閉緩存功能,Web伺服器在處理頁面時會隨時返回HTML和腳本結果;若將Buffer屬性設為True,則打開緩存功能,Web伺服器在處理頁面時會將結果暫時存放到緩存中,當全部腳本處理完后,或者遇到End或Flush方法時,才將緩存中的內容發送到瀏覽器。
Buffer屬性的更改必須放在HTML或腳本輸出之前。這是因為在任何內容發送到瀏覽器后,Buffer屬性值就不能再更改,否則會引起錯誤。
ContentType屬性
ContentType屬性指定響應的HTTP內容類型。其語法結構如下:
1Response.ContentType [=ContentType]
ContentType字元串通常被格式化為類型/子類型,其中類型是常規內容範疇,子類為特定內容類型。如果未指定ContentType,默認為text/HTML。
web伺服器將某個文件發送到瀏覽器時,它會將文件的MIME類型告訴瀏覽器,瀏覽器會根據文件的MIME類型和擴展名來確定是自己本身就能顯示,還是必須調用其他應用程序。
Expires屬性
EXpires屬性指定了在瀏覽器上緩衝存儲的頁距過期還有多少時間。如果用戶在某個頁過期之前又回到此頁,就會顯示緩衝區中的版本。其語法結構如下:
1 Response.Expires [=時間]
時間參數設置網頁距過期還有多少分鐘。如果將此參數設置為O,可使緩存的頁立即過期,這樣客戶端每次都將從伺服器上得到最新的頁面。

技術應用


電子商務
ASP 可以通過Windows提供的COM/DCOM來獲取Active X和結構支持。
ASP使用ODBC(Open Database Connectivity,開放資料庫互連)技術訪問資料庫。在具體應用中,一般通過ADO(ActiveX Data Objects,ActiveX數據對象)實現對資料庫的操作。使用ADO的connection、command和recordset對象可以完成與資料庫連接的建立,SOL語句的執行,查詢結果集合的保存、遍歷和顯示等工作。

語言評價


使用ASP編寫伺服器端腳本,可以方便地創建複雜、實用的Web應用程序。
ASP所設計出的是動態主頁,可接收用戶提交的信息並作出反應,其中的數據可隨實際情況而改變,無須人工對網頁文件進行更新即可滿足應用需要。例如:當在瀏覽器上填好表單並提交HTTP請求時,可以要求在站點伺服器上執行一個表單所設定的應用程序,而不只是一個簡單的HTML文件。該應用程序分析表單的輸入數據,根據不同的數據內容將相應的執行結果(通常是資料庫查尋的結果集)以HTML的格式傳送給瀏覽器。資料庫的數據可以隨時變化,伺服器上執行的應用程序卻不必更改,客戶端得到的網頁信息會始終保持新鮮的魅力。
與使用Visual Basic、C++或Java等編程語言開發Web應用程序相比,ASP是更為靈活快速的創建Web應用程序的方法。除了通過添加腳本為應用程序創建HTML界面之外,還可以建立自己的COM(組件對象模型)組件,並且可將應用程序的商業邏輯封裝在可重複使用的模塊中,以便在腳本、其他組件或其他應用程序中調用。
WEB技術
HTMLXHTML ▪ HTML 5 ▪ CSS ▪ TCP/IP
XMLXML ▪ XSL ▪ XSLT ▪ XSL-FO ▪ XPath ▪ XPointer ▪ XLink ▪ DTD ▪ XML Schema ▪ DOM ▪ XForms ▪ SOAP ▪WSDL ▪ RDF ▪ RSS ▪ WAP ▪ Web Services
Web腳本JavaScript ▪ HTML DOM ▪ DHTML ▪ VBScript ▪ AJAX ▪ jQuery ▪ JSON ▪ E4X ▪ WMLScript
Serv腳本SQL ▪ ASP ▪ ADO ▪ PHP
.NETMicrosoft.NET ▪ .NET Mobile
多媒體SMIL ▪ SVG
網頁技術與標準
文檔呈現語言▪ HTML▪ XHTML▪ XML▪ XForms▪ DHTML
樣式格式描述語言▪ 層疊樣式表▪ XSL
動態網頁技術▪ CGI▪ FastCGI▪ ASP▪ ASP.NET▪ ColdFusion▪ JSP▪ PHP
客戶端交互技術▪ ActiveX▪ Java Applet▪ JavaFX▪ AJAX▪ Silverlight▪ ActionScript▪ Flex▪ AIR
客戶端腳本語言▪ JavaScript▪ JScript▪ VBScript▪ ECMAScript
標識定位語言▪ URL▪ URI▪ XPath▪ URL重寫
文檔綱要語言▪ DTD▪ XML Schema