利用ASP開發Web應用 (轉)
利用開發應用
通常情況下,透過看到的網頁大多是靜態的,而隨著Web應用的發展,使用者 希望能夠看到根據要求而動態生成的主頁,例如響應使用者查詢的要求、生成報表等。
根據使用者請求生成動態主頁的傳統方法有CGI、IS等。CGI是根據瀏覽器端的http請 求啟用響應程式,每一個請求對應一個程式。當同時有很多請求時,擠佔資源,造 成低下;ISAPI針對這一缺點進行改進,利用dll(動態連結庫)技術,以執行緒代替程式 ,提高了和速度,但要考慮執行緒的同步問題,而且開發步驟煩瑣。這兩種技術和另一普 遍使用的開發動態網頁的技術都還存在著另外一個問題,那就是開發困難,程式的開發 和HTML寫作是兩個完全不同的過程,需要專門的程式設計師開發。而較簡單的開發技術如JavaSc ript和IDC(Inte Database Connector)等功能有限,不敷使用。
ASP即 Server Page,是公司的新一代開發動態網頁的技術,具有開發簡單 、功能強大等優點,可以非常直觀簡易地實現複雜的Web應用。本文將介紹ASP的基本概念、 特點、開發要素,並透過兩個典型的例子介紹利用ASP開發Web應用的具體實現。
ASP概念和工作流程
ASP是一個Web端的開發環境,利用它可以產生和執行動態的、互動的、高效能的 Web服務應用程式。
ASP屬於ActiveX技術中的Server端技術。與常見的在Client端實現動態主頁的技術如Ja va applet、ActiveX Control、Script、等不同,ASP中的命令和Script語句 都是由伺服器來解釋的,執行結果產生動態生成的Web頁面並送到瀏覽器;而Client端 技術的Script命令則是由瀏覽器來解釋執行。由於ASP是在伺服器端解釋執行,開發者可以 不必考慮瀏覽器是否支援ASP;同時由於它在伺服器端執行,開發者也不必擔心別人程 序從而竊取邏輯。
ASP透過字尾名為.asp的ASP來實現,一個ASP檔案相當於一個可執行檔案,因此必 須放在Web伺服器上有可執行的目錄下。
當瀏覽器向Web Server請求ASP檔案時,就啟動了ASP。Web Server開始呼叫ASP, 將被請求的.asp檔案從頭讀到底,執行每一個命令,然後動態生成一個HTML頁面並送到瀏覽 器。ASP檔案的製作和HTML類似,且和HTML開發整合,可以在同一個過程完成。透過ASP內建 的、伺服器(Server Component)可以完成非常複雜的任務,而且使用者還可以自己 開發或利用別人開發的伺服器元件完成專門的任務。
ASP具有以下特徵:
完全和HTML整合;
易於生成,無需手工編譯和連線;
物件導向,可擴充套件ActiveX Server元件。
目前ASP只適用於下列Web Server:
3.0 on NT;
Peer Web Server v3.0 on NT Workstation;
Microsoft Personal Web Server on Win95。
ASP檔案
1.ASP檔案製作
ASP檔案即字尾名為.asp的檔案,是一個文字檔案,可以包括下列元素的任意組合:
文字(text)
HTML標誌(tags)
Script命令
製作ASP檔案非常簡單,可以用任何無格式的文字編輯工具(筆者一直使用Notepad), 也可用專門的主頁開發工具和ASP開發工具如VisualDev等。請看下面的例子:
現在時間:<%= Now %>將其存成一字尾為.asp的檔案,放在一個Web Server指定的有 執行權的目錄下,連結上後,它就能把伺服器的當前時間輸出。要注意:asp檔案不能透過 開啟的方式來執行,而必須是連結,例如,假定asp是Web Server(主機名host)上有執行權 限的一個虛擬目錄,要執行該目錄下的hello.asp,呼叫方式應該是:
2.ASP語法
ASP並不是一種語言,它只是提供一個環境來執行ASP檔案中的Script。為了順利使用AS P,必須遵守ASP的語法規則。ASP的語法由下面幾個元素組成:
定界符
定界符是用來界定一個標誌單元的符號,如HTML裡的“<”和“>”。
同樣,ASP Script的命令和輸出表達也有定界符,同text和HTML都不同,它的命令定界 符是“<%”和“%>”。例如下面是一條賦值語句:
<% name=“Timeout” %>
ASP使用“<%”=和“%>”來向瀏覽器輸出,例如:
<%= name %> 將在瀏覽器上輸出“Timeout”。
?Script標誌
ASP可以使用任何Script語言,只要提供相應的指令碼(engine)即可,ASP自身提供 了和的驅動。它預設的Script語言是VBScript,當然開發者也可以改變這 一預設設定,例如要改為Jscript,只需在檔案開頭註明<%@Language=JScript%>即可。<S CRIPT>和</SCRIPT>中的部分就是描述語言程式,和HTML類似。不同的是在HTML中這一部分 由瀏覽器解釋執行,在ASP裡卻是由Web Server解釋執行。
可以在一個.asp檔案裡使用幾個不同的Script語言,只需把每段用<SCRIPTLANGUAGE=La nguageName>和</SCRIPT>括起來即可。也可以包含在瀏覽器端執行的Script,將描述語句注 釋起來,該段程式就由瀏覽器來解釋執行。
HTML標記:
在ASP檔案中可以包含HTML語言的各種表達。
ASP內建物件
ASP提供了五個內建物件來提供更高一級的Web功能,它們是:
Request:從使用者獲取資訊;
Response:將資訊送給使用者;
Server:提供Web Server工具;
Session:在一個Session內使用者的資訊;
Application:在一個ASP應用內讓不同使用者共享資訊。
用的最多的是前三個物件。Request和Response是用來實現Web Server與瀏覽器互動。R equest的一個重要方法是Form(),其作用是提取瀏覽器的使用者輸入資訊。例如主頁中有一個 文字編輯框,已指定它的變數名為“name”,form的action為某asp檔案。下面的語句就可 以取得使用者填在裡面的內容:
Request.Form(“name”)
顯然,這避免了CGI等方法中所需要的複雜程式設計。
輸出要用到Response的一個重要方法Write:
Response.Write “your message”
該語句向使用者瀏覽器輸出了一條訊息。
Server物件有兩個重要方法:MapPath和Create。MapPath用來將Web Server的虛 擬路徑還原成實際路徑;CreateObject可能是最重要的一個方法,用來產生伺服器元件的對 象例項,詳細介紹見下文。
伺服器元件
透過伺服器端的Script和HTML,可以很容易地生成動態網頁,但功能有限,例如不能連 接伺服器資料庫、使用功能或訪問伺服器檔案系統等。為了解決這一問題,就要用到CO M技術,即Component Object Model。幾乎所有的ActiveX技術都是以此為基礎,透過COM, 可以輕易地使用其它COM元件,這種對於Web可共享的COM元件,就是伺服器元件。一個服務 器元件就相當一個物件,提供屬性和方法來使用伺服器資源。伺服器元件可以由支援Active X的任何第三方開發,ASP本身也自帶了五個伺服器元件,可以直接使用,並能完成大部分服 務器端的工作。
要呼叫伺服器元件,必須先利用Server物件中的方法CreateObject產生伺服器元件物件 例項,如下所示:
Server.CreateObject(ProgID)
這裡,ProgID指定了構件標識,構件可以是各種形式的可執行程式(DLL、EXE等),也 不必考慮它的位置,只要在(或95)中登記註冊這些程式,COM就會在系統資料 庫(Registry)裡維護這些資料,同時以ProgID方式讓程式設計師呼叫。登記用regsvr32程式,可 以用RegEdit程式來看ProgID。構件產生後,就可以使用它的方法和屬性進行工作。
一般使用Server構件的程式片段如下:
'產生構件
Setobj = Server.CreateObject(“ProgID”)
'使用它的方法
obj.Method
ASP提供了5個伺服器元件,其中最重要的兩個是資料庫訪問構件ADO和檔案訪問構件F ileSystemObject,本文的例子將說明它們的使用。
對於一些特殊的需求,開發者還可以自己開發伺服器構件,利用VB或VC可以很方便地開 發出一些構件,然後登記這些構件,就可以用Server.CreateObject來呼叫。另外還有許多 站點上有開發好的構件供下載,只要在自己的機器上將它們登記就可以使用。
ASP應用例項
1. 利用檔案訪問元件製作主頁訪問計數器
現在許多主頁上都有一個計數器來記錄該主頁被訪問的次數,通常計數器透過CGI實現 ,開發過程比較複雜,一些非專業的程式設計師難以實現。而透過ASP的檔案訪問元件File Acce ss Component (Scripting.FileSystemObject),可以很方便地產生一個計數器。下面是一 個例子,其原理是:根據page hits生成計數檔案,讀出計數檔案中的數字,再根據它動態 地調出代表1、2、3等數字的影像。其基本過程和CGI差不多,但在送出影像時不同,CGI是 透過程式來動態生成一整幅影像,而我們的方法是將已存在於機器中的影像一張一張地調出 ,這樣就可以製作非常精美的數字影像。其程式片段為:
<html>
<%
CountFile = Server.MapPath(“/gjy”+“/count.txt”)
’計數檔案
Set FileObj = Server.CreateObject(“Scripting.FileSystemObject”) ’產生文 件訪問構件
Set Out=FileObj.OpenTextFile(CountFile,1,FALSE,FALSE) ’ 開啟檔案
visitors = Out.ReadLine ’讀出訪問記錄
visitors = visitors+1 ’加一
Length = Len(visitors) ’該調出的影像數目
strURL=“” ’影像的URL
Do While Length>=1
strURL=“<IMG SRC=/img/”+Mid(visitors,Length,1)+“.gif>”+strURL
Length=Length-1
L ’生成影像URL
Set Out=FileObject.CreateTextFile(CountFile,TRUE,TRUE)
Out.WriteLine(visitors) ’記錄數寫回
%>
<%=strURL%> ’輸出影像
</html>
注:讀者可以根據自己伺服器的情況設定影像檔案路徑。
2. 利用Data Access Component (ADODB .Connection) 訪問伺服器資料庫
讓使用者透過瀏覽器查詢伺服器的後端資料庫是許多Web服務提供者必需有的服務,ASP通 過內建的ADODB元件來實現這一功能。ADO即Active Data Object,同DAO和RDO一樣,屬於數 據庫應用的COM構件,不同的是,ADO是專門針對Internet和Web開發的,並對此進行了 。利用ADO查詢資料庫的步驟是:
? 設定DSN
ADODB透過ODBC工作,因此要在ODBC中設定DSN(資料來源名)。
生成ADODB元件例項
Set Connect=Server.CreateObject(“ADODB.Connection”)
連線資料庫
利用ADODB的成員Open和先前設定的DSN與資料庫連線:
Connect.Open(“DSN=dsnname;UID=userID; PWD=pass”)
執行查詢
指定查詢語句:
SQL= * from tablename
執行查詢:
Set RS=Connect.Execute(SQL)
? 顯示結果
完整的程式片段:
<%
Set Connect=Server.CreateObject(“ADODB. Connection”) ’產生元件例項
Connect.Open(“DSN=dsnname;UID=userID; PWD=password”) ’連線資料庫
SQL= select * from tablename
Set RS=Connect.Execute(SQL) ’執行查詢
%>
<% Do While Not RS.EOF %>’顯示結果
<%=RS(fieldname)%>
<%
Rs.MoveNext
Loop
%>
結論
ASP的開發簡單而直觀,開發過程可以方便地和HTML整合;利用COM技術,還可以實現更 強大更復雜的功能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988805/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用JavaServer Faces開發Web應用(4) (轉)JavaServerWeb
- 用JavaServer Faces開發Web應用(3) (轉)JavaServerWeb
- 開發Web應用Web
- 如何利用React.js開發出強大Web應用ReactJSWeb
- 使用JavaServer Pages2.0開發Web應用 (轉)JavaServerWeb
- [英文]利用Visual Studio.NET 進行 ASP.NET的WEB開發 (轉)ASP.NETWeb
- 用AJAX開發智慧Web應用程式之基礎篇(轉)Web
- 用Servlet開發企業級三層Web應用(一) (轉)ServletWeb
- 開發Web應用程式中Cookie使用的問題 (轉)WebCookie
- 關於WEB應用程式的列印元件開發初探 (轉)Web元件
- 讀了《JavaScript Web 應用開發》JavaScriptWeb
- WEB應用開發中的ServletWebServlet
- 急聘JAVA Web應用開發高手JavaWeb
- 開發安全的ASP.NET應用程式ASP.NET
- Node助力Web應用開發——在新的開發平臺,打造高效能Web應用Web
- 開始使用 Python 開發 Web 應用PythonWeb
- Yeoman:Web 應用開發流程與工具Web
- Web應用的元件化開發(一)Web元件化
- Web應用的元件化開發(二)Web元件化
- ASP.NET Web開發實用程式碼舉例(一)ASP.NETWeb
- ASP.NET Web開發實用程式碼舉例(二)ASP.NETWeb
- ASP.NET Web開發實用程式碼舉例(三)ASP.NETWeb
- 開始使用ASP.NET Core - 建立第一個Web應用ASP.NETWeb
- 用ASP、NET開發下載系統(三) (轉)
- 利用Burp Suite攻擊Web應用UIWeb
- Google Web應用開發指南第一章:什麼是Web應用?GoWeb
- [應用案例]完美自適應WEB開發官網Web
- ASP.NET歷險(一)——利用ASP與ASP.NET發E-mail (轉)ASP.NETAI
- 開發Web應用為什麼要用TypeScript?WebTypeScript
- 使用 Flutter 開發簡單的 Web 應用FlutterWeb
- [譯] Rust 開發完整的 Web 應用程式RustWeb
- Web應用程式開發五步法Web
- Web應用開發的七項原則Web
- Golang 入門系列(十三)用Beego開發web應用GolangWeb
- 用 Nginx + Lua(OpenResty) 開發高效能 Web 應用NginxRESTWeb
- 利用 Bootstrap 進行快速 Web開發bootWeb
- ASP.NET中的AJAX應用開發總結ASP.NET
- ASP 與ADO 在Web 數 據 庫 查 詢 中 的 應 用 (轉)Web