發展歷史
在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公司的各種wiIldows作業系統都可以作為ASP的運行平台。其中,在wiIIdows 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標記,只要該標記是合法的,如下例將輸出綠色的漢字和一條水平線:
Response.Write"<Font color=green>"Response.Write"歡迎您來訪問!"&"<Br>"Response.Write"</Font>"Response.Write"<Hr>"
將HTML標記與ASP中的變數恰當的結合使用,可使程式更簡潔易讀,如下例是根據Request對象獲取的數據來創建表格的一行信息:
<%Response.Write"<Tr><Td>"&Request.Form("strUserName")&"</Td><Td>"_&Request.Form("intAge")&"</Td><Td>"%>
使用Response.Redirect方法從目前網頁導向至其他網頁
在普通網頁中,可以使用超連結的方式來引導訪問者跳轉到另一個頁面,但這個過程須要訪問者單擊一個超連結才可以進行。Response對象的Redirect方法則可以自動完成頁面間的跳轉,而訪問者幾乎不會感覺出來。
使用Response.End方法結束程式的執行
End方法使伺服器停止當前腳本的處理並返回當前結果。如果Response對象的Buffer屬性設為True,則End方法立即把快取中的內容傳送到客戶端並清除快取。
因此,若想取消向客戶端的所有輸出,可以先用Clear方法清除快取,再用End方法停止腳本的處理。
AddHeader方法用指定的值添加HTML標題。該方法常常向回響添加新的HTTP標題。它並不替代現有的同名標題。一旦標題被添加,將不能刪除。其語法結構如下:
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內容類型。其語法結構如下:
Response.ContentType [=ContentType]
ContentType字元串通常被格式化為類型/子類型,其中類型是常規內容範疇,子類為特定內容類型。如果未指定ContentType,默認為text/HTML。
web伺服器將某個檔案傳送到瀏覽器時,它會將檔案的MIME類型告訴瀏覽器,瀏覽器會根據檔案的MIME類型和擴展名來確定是自己本身就能顯示,還是必須調用其他應用程式。
Expires屬性
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(組件對象模型)組件,並且可將應用程式的商業邏輯封裝在可重複使用的模組中,以便在腳本、其他組件或其他應用程式中調用。