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甚至可以實現中等規模的企業應用程序。  [1]
  • 中文名:動态服務器頁面
  • 英文名:Active Server Pages
  • 英文縮寫:ASP
  • 開發公司:微軟公司
  • 操作系統:windows

發展曆史

在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标題。它并不替代現有的同名标題。一旦标題被添加,将不能删除。其語法結構如下:

1t 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内容類型。其語法結構如下:

1tResponse.ContentType [=ContentType]

ContentType字符串通常被格式化為類型/子類型,其中類型是常規内容範疇,子類為特定内容類型。如果未指定ContentType,默認為text/HTML。

web服務器将某個文件發送到浏覽器時,它會将文件的MIME類型告訴浏覽器,浏覽器會根據文件的MIME類型和擴展名來确定是自己本身就能顯示,還是必須調用其他應用程序。

Expires屬性

EXpires屬性指定了在浏覽器上緩沖存儲的頁距過期還有多少時間。如果用戶在某個頁過期之前又回到此頁,就會顯示緩沖區中的版本。其語法結構如下:

1t 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(組件對象模型)組件,并且可将應用程序的商業邏輯封裝在可重複使用的模塊中,以便在腳本、其他組件或其他應用程序中調用。  

相關詞條

相關搜索

其它詞條