動態網頁中伺服器端的處理

來源:互聯網
上載者:User
動態|伺服器


     前面的章節已經研究了ASP的一些內建對象。重點介紹的對象有Request、Response、Session和Application對象。ASP中另一個比較主要的對象為Server對象。本章重點介紹這個對象的背景知識和使用方法。
Server對象在伺服器端指令碼中通過執行個體和使用其他外部對象和組件,提供了一種擴充ASP頁的功能的方法。事實上,許多人認為這個對象是ASP之所以能夠流行的主要因素。引入Server對象的意義很大,這意味著ASP不必提供人們所需要的所有屬性。它可調用其他應用程式和組件完成指定工作。
這也恰好符合了構建由獨立的對象組成的應用程式的總體目標,而不是構建通常見到的那種耗盡硬碟空間的“可做每件事情”的巨型程式。不僅僅是在電腦的世界中,整個世界正在朝著組件和“隨插即用”概念方面發展。如今,當汽車或電視機發生故障時,技師或工程師很可能會拔出有問題的組件並且插入一個新的組件,因此,汽車維護人員或電視機維修人員的工作也變成了物件導向的。
然而,IIS同樣支援使用外部對象和與伺服器環境進行互動作用的許多傳統方法。這是一個特定的例外,這些方法並不是真正的ASP組成部分,但通常的確非常有用,並且通過Server對象的一些新特性已經與ASP很好地進行了整合。本章將簡要地回顧這些傳統方法,然後詳細地介紹ASP Server對象。
本章的主要內容為:
· 傳統的伺服器端包含(SSI)指令的背景知識和使用方法。
· Server對象所要完成的任務,以及與SSI的比較。
· 如何使用Server對象執行個體、外部組件和應用程式。
· 如何使用Server對象執行封裝的指令碼或其他ASP頁面。
· 如何使用Server對象管理在指令碼中出現的錯誤。
· 如何使用Server對象完成與HTML或HTTP相容的格式轉換。
Server對象是ASP頁中的錯誤處理過程的一部分,在IIS 5.0和ASP 3.0中是新的內容。本章介紹該對象是如何工作的。因為有單獨的一章(第7章)專門討論有關調試和錯誤處理方面的所有問題。所以本章只簡要地討論錯誤處理方法,並且僅限於Server對象直接涉及的過程。

4.1 動態網頁中伺服器端的處理
就伺服器端處理而言,ASP是產生動態Web網頁的一種相對較新的技術。動態網頁意味著什麼呢?先暫時不考慮用戶端相關功能上的進展,也不討論用戶端指令碼、Java Applet、動態HTML或ActiveX控制項等內容。這裡的動態網頁是專指伺服器響應用戶端請求產生的頁面,並且根據情況每次產生的頁面可能是不同的。
舉個簡單的例子,建立一個只包含當前日期和時間的頁面。每次請求該頁面時將顯示一個不同的值,因為日期和時間取決於伺服器的時鐘,或取決於提供日期和時間的一個資源(例如一個獨立的伺服器或來自於互連網上一個標準時鐘)。當然,實際上動態網頁要比這複雜得多,也許顯示資料庫記錄的當前值或者郵件伺服器上等待著的郵件訊息的摘要。重要的是伺服器不僅閱讀一個無格式的HTML頁面、或磁碟上的文字檔以及把它們發送給客戶,而且,必須完成一些工作來建立該頁面。

Internet伺服器應用編程介面
第1章介紹了建立動態網頁的一些方法。傳統的技術是使用與Web伺服器的一個介面,它被稱為Internet伺服器應用編程介面(Internet Server Application Programming Interface,ISAPI)。
ISAPI可用於執行其他的應用程式,這些應用程式通過C語言風格的stdin和stdout資料流函數來讀取用戶端請求的值並建立Web伺服器的響應。ISAPI應用程式所必須做的全部事情就是編寫相應結果頁面的文本和HTML,並通過stdout函數輸出到Web伺服器。事實上ASP DLL內部真正做的事情是更物件導向的。
IIS自開始就運行ISAPI的應用程式和指令碼解譯器。它提供一個特殊的解譯器動態連結程式庫,給出訪問伺服器的請求和響應的另一種方法,儘管受到一定的限制。它通過伺服器端包含指令實現,之所以這樣說,是因為它們是在伺服器上執行的,並且結果包含在傳送給用戶端的響應中。這個特性在IIS中是通過一個名為ssinc.dll的動態連結程式庫實現的。預設情況下,IIS把副檔名為.shtml、.shtm或.stm的任意頁面都映射到這個動態連結程式庫。開啟預設Web網站的Properties對話方塊,在Application Setting中單擊Configuration按鈕,可以看到這種映射,如圖4-1所示:

這樣,帶有這些被映射的副檔名的頁面將被傳送給ssinc.dll進行處理。因此,執行頁面中所有的伺服器端包含語句,結果(如有的話)插入到伺服器的響應中,即插入到用戶端接收到的頁面中。
因為這些檔案是映射到ssinc.dll檔案而不是映射到ASP動態連結程式庫(asp.dll)的,所以在這些頁面中的所有ASP代碼將被忽略並且按照原有狀態傳送給用戶端,用戶端將能夠看到這些指令碼。然而,在ASP 3.0版本中有一個避免這種情況的方法,稍後在討論Server對象的Execute和Transfer方法時,研究這個方法。




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。