也不貼上,用ASP開發基於Windows NT Server和IIS的Web應用

來源:互聯網
上載者:User
iis|server|web|window 用ASP開發基於Windows NT Server和IIS的Web應用

 

國防科工委指揮技術學院 韓正清 錢明
摘要: 本文比較了CGI ISAPI與ASP在結構和效能方面的差異,並介紹了用ASP開發
WEB 應用的一般過程。
關鍵詞: ASP CGI ISAPI IIS
一、前言
Internet/Intranet和WEB技術的出現和發展,為資訊的交換和共用提供了快捷有效
的方法,但Internet/Intranet上提供的資訊多以靜態網頁為主,對於一個WEB應用
開發人員來說,最關心的莫過於如何增強網頁的動態性和互動性了。Active Server
Pages是微軟開發的基於Windows NT Server和IIS的伺服器端指令碼運行環境,指令碼
在Web伺服器中運行,而瀏覽器並不處理指令碼,它所面對的僅僅是一個完全符合HTML
格式的網頁,這為更多的、不同類型的瀏覽器訪問WEB伺服器提供可能。
二、ASP的體繫結構
通用閘道介面CGI和Microsoft Information Server應用程式介面ISAPI是開發互動
式的WEB應用常用的兩種介面方式,CGI是基於WEB伺服器與資料庫之間的聯絡的服務
器端進程,它可以完成對資料庫的底層操作,客戶通過GET/POST向WEB伺服器提出服
務請求,伺服器端的守護進程通過標準輸入Stdin和環境變數將參數傳送給指定的
CGI程式,執行結果將以HTML格式返回給客戶。對於大多數Internet應用程式,CGI
為開發應用提供了一個很好的平台,但CGI在效能方面卻有兩個我們不可迴避的缺
陷:
(1)一個CGI程式不能為多個客戶共用,對於新的請求必須啟動新的 進程,見
圖.1 隨著客戶請求的增加,並行的進程也將越多,這對系統資源來說是一種極大的
浪費,同時也加重了伺服器的負擔,降低了效能。
(2 )不提供永久性的上下文資訊。比如:使用者需要查詢一個大型資料庫, 結果可
能是上千行的資料,如果使用者想每次只顯示10行的資料,但CGI在輸出10行資料後就
停止執行,要再顯示下10行的資料必須再執行一次CGI程式,這種方式顯然效率不
高。
ISAPI有比CGI更好的效能,因為ISAPI應用以動態連結程式庫形式存在,在其啟動時被加
入記憶體、並且和WEB伺服器處理序處於同一個系統空間,見圖.2,佔用系統資源較少。
效率雖然提高了,但也帶來了更大的風險,ISAPI進程和伺服器處理序處於同一系統進
程空間,因此,一個違規操作就有可能導致WEB伺服器的崩潰。另外無論是CGI程式
還是ISAPI程式基本上是獨立於HTML之外的,完全用另一種語言開發,工作量大,與
HTML結合得不夠緊密。
ASP是基於Microsoft Windows NT 4.0和Microsoft Internet Information Server
3.0 (IIS3.0)的開放式指令碼開發環境,它很好地把HTML和指令碼開發融合在一起,
提高了編程的靈活性,降低了開發難度。ASP中的指令碼在WEB伺服器端運行,而不是
傳統的在客戶瀏覽器中運行,這一措施使客戶的瀏覽器無須擔心伺服器端的網頁使
用何種指令碼,ASP都會產生一個符合HTML標準的網頁送回用戶端,ASP在效能方面的
優勢體現在以下幾點:
(1) 完全與HTML融合在一起;
(2) 建立簡單,不需要編譯和連結,指令碼可以在ASP環境下直接運行;
(3) 物件導向,功能可以由Activex伺服器構件擴充;
(4) 由於指令碼在伺服器端執行,因此它幾乎可以支援任何一種瀏覽器。

ASP在效能和效率方面優於CGI、ISAPI,這主要源於它先進的體繫結構,見圖.3 ASP
直接建立於WEB伺服器中,並且是作為WEB伺服器的一個服務運行,支援多使用者,多
線程。HTTP協議是一個無狀態的協議,WEB伺服器不能記憶客戶瀏覽器過去曾發送過
的請求資訊,客戶的每次請求都是獨立的,彼此之間沒有聯絡,因而伺服器的許多
時間都花費在處理請求上,服務效率受到了影響。ASP擁有強有力的會話管理機制,
它可以實現各請求之間的資訊共用,提高了效率。ASP在安全性方面也作了細心的考
慮,包括:設定虛擬目錄存取權限、使用者身份檢測、隱含指令碼等措施。ASP支援多種
指令碼,比較常用的有VbScript和JScript。


三、開發ASP應用
(1)系統要求:
在安裝ASP之前,系統必須符合以下三個要求之一:
· Windows NT Server 4.0 +Service Pack 3 +IIS 3.0
· Windows NT WorkStation 4.0 +Peer WEB Server 3.0
· Windows 95 Personal WEB Server 1.0 a
(2)ASP應用程式的組成
一個ASP檔案以 .asp作為其副檔名,代替先前的.HTML或.HTM,.asp檔案中包括:文
本、HTML標籤和指令碼命令。但一個ASP應用程式不僅僅只有一個.asp檔案,它還包括
Global.asa檔案、.inc檔案以及其他一些資源檔。VbScript是ASP預設的指令碼語
言,VbScript中除了訊息框(MsgBox)和輸入框(InputBox)不可在ASP中使用外其
他指令碼都可以在ASP環境下直接運行,另外,ASP還提供了五個內建對象,為客戶訪
問各種資源提供了極大的方便。這五個對象是:



ASP功能的擴充主要依賴於構件(Component)的支援,構件可以用VB,JAVA,和MFC
等工具開發。ASP已經為客戶提供了五個構件,通過建立這些構件的執行個體,使用者可利
用構件的特殊功能。這五個構件是:
· 資料庫訪問構件(Data Access Component)
· 廣告翻轉構件(Ad Rotator Component)
· 內容串連構件(Content Linking Component)
· 檔案訪問構件(File Access Component)
· 瀏覽器效能構件(Brower CapabilityComponent)
(3)應用執行個體
下面以電信局為客戶提供電話紀錄查詢為例,介紹ASP訪問ODBC資料庫的一個WEB應
用。完成這一WEB應用只要包括以下兩個部分:(1)建立WEB伺服器端的.asp指令碼,
實現客戶查詢網頁。(2)建立WEB伺服器端的.asp指令碼,返回查詢結果。資料庫采
用Access資料庫 ,DSN=phone,Table=phone_record,phone_record表中包括七項內
容:主叫號碼、呼叫時間、被叫號碼、被叫地點、通話時間長度、費率和話費。



查詢網頁原始碼:
<HTML>
<HEAD><TITLE>使用者資訊查詢</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<CENTER><H3>計費系統使用者資訊查詢</H3></CENTER>
<HR>
<FORM METHOD=POST ACTION="query.asp">
<P>請選取查詢的項目:
<SELECT NAME="section">
<OPTION SELECTED>主叫號碼
<OPTION>被叫號碼
<OPTION>被叫地點
</SELECT>
<P>等於
<INPUT TYPE=TEXT NAME=content><BR>
<P><INPUT TYPE=SUBMIT VALUE="Submit Form "><INPUT TYPE=RESET VALUE="Reset Form">
</FORM>
<BR>
</BODY>
</HTML>



查詢結果網頁原始碼:
<HTML>
<HEAD><TITLE>使用者資訊查詢</TITLE></HEAD>
<BODY BGCOLOR=#FFFFFF>
<CENTER><HI>使用者資訊查詢</H1><CENTER><BR>
<%section1=request.form("section") '取查詢參數
content1=request.form("content")
%>
<%set Conn=Server.CreateObject("ADODB.Connection") '建立資料庫訪問對象
Conn.Open "phone" '開啟資料庫
SQl="select * from phone_record where " & section1 &"='"& content1 &"'"
Set RS=Conn.Execute(SQL) '執行查詢
%>
<p>查詢時間:<%=now%>
<TABLE BORDER=2>
<FONT COLOR=#213554><TR>
<%FOR i=0 TO RS.Fields.Count-1%>
<TD><B><%=RS(i).Name%>&l



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。