- ASP動態網頁設計與應用
- 沈大林主編
- 4522字
- 2019-01-01 05:02:49
第1章 ASP網站開發基礎
1.1 動態網頁概述
1.1.1 靜態網頁與動態網頁
現在是信息化的時代,網絡的影響已深入人們生活的方方面面,在所有網絡中,對人們影響最大的就是互聯網(Internet)。互聯網起源于20世紀60年代末的美國的ARPA網(ARPANET),后來,逐漸發展成為連接全球的信息網絡。在近年來,互聯網已經成為人們交流、學習和商業往來的一個重要工具。使用瀏覽器瀏覽網絡信息和收發電子郵件已經和寫字一樣成為人們工作、生活的重要技能。
互聯網能夠風靡世界,除了它擁有快捷的全球通信功能外,還在于它具有巨大的網絡信息資源和各種人們所需的服務。萬維網(WWW,World Wide Web)瀏覽、電子郵件(E-mail)、網絡論壇(電子公告牌,BBS)、新聞組(NewsGroup)、文件傳輸(FTP)和電子商務等都是互聯網中最常用的基本服務內容。
萬維網WWW又稱為3W,是網絡中的基本服務內容。網絡中有著數以億計的網絡信息,這些信息大多以網頁形式存在。萬維網瀏覽就是通過用戶計算機中的瀏覽器(如IE,NetScape)去瀏覽網頁中所提供的信息。
基本上來說,萬維網中可以找到用戶所需消息中的絕大多數:想看新聞,可以在網上看到當天最新的新聞,而不需要去買報紙;想出門旅游,可以在網上找到旅游景點的介紹,氣象信息、住宿情況、餐飲服務等內容;做科研搞論文,可以在網上找到該研究方向的聞新動態,發展進度等。有了萬維網瀏覽,就真的可以做到古人常說的“秀才不出門,能知天下事”了。
早期的萬維網網頁都是靜態網頁。所謂靜態,是指網頁的內容都是事先預備好的——就好像報紙一樣,用戶只能在網絡上瀏覽信息,而不能將用戶的信息傳到網絡上。靜態網頁不能進行信息的交互,這就大大制約了萬維網的應用。
隨著網絡技術的發展,后來又出現了動態網頁。所謂動態,是指網頁上顯示的內容是可以變化、可以交互的??梢愿淖兪侵鸽S著條件的不同,同一網頁可以出現不同內容;可以交互是指網站與用戶間的信息可以互通,用戶的信息可以傳送到網絡上,供網站收集、分析,網站可也可以根據用戶的信息來發給用戶相應的信息。動態網頁的出現,使網絡的應用得到了極大的擴展,用戶可以在網絡上發布自己的信息,網站也能以此來收集用戶信息,進行分析,電子郵件、網絡論壇、電子商務等,都得益于動態網頁的發展。
1.靜態網頁與HTML
靜態網頁由單純的超文本標記語言(HTML,Hypertext Markup Language)進行編輯,在存儲時以HTML方式(文件擴展名為.htm/.html)存儲。
網絡中瀏覽的靜態網頁都是一個個的HTML文件,這些網頁中可以包含有文字、圖片、動畫和聲音,以及能夠跳轉到其他文件的超鏈接。這些所有的東西都是以超文本標記語言方式進行編輯的。
一個HTML文件包含了一些特殊的命令來告訴用戶的瀏覽器應該如何顯示文本、圖像,以及網頁的背景。這些命令加入到文本文件中,被稱為HTML標記。如果在瀏覽器顯示網頁時查看網頁的文本,可以看見在尖括號中的HTML標記。
下面是的例子說明了一個簡單的靜態HTML網頁的是如何實現的。
打開Windows中的記事本,把下面的內容輸入到記事本中,將文件以名稱test.htm進行存儲。注意,在存儲時要選擇“文件類型”為“所有文件”。
<html> <body> <p align="center"><font color="red">這是一個測試。 </font> </p> <p><font color=BLUE ><I>測試OK。</I></font> </p> </body> </html>
在“資源管理器”中雙擊打開test.htm文件,可以看到如圖1-1所示的內容。
上面這段內容就是一個使用HTML編輯的簡單網頁。
靜態網頁中的內容在顯示時都是不會改變的,設計時是什么樣,顯示時就是什么樣。對于上面的網頁,在顯示網頁的IE瀏覽器“查看”菜單下單擊“源文件”命令,可以在打開的記事本中看到網頁的源文件,如圖1-2所示。
可以看到,這里的源文件代碼與設計時的代碼完全相同。
下面對這個使用超文本標記語言編輯的簡單靜態網頁進行簡單說明。HTML網頁文件都是以<html>標記開始,以</html>標記結束的。標記<body>和</body>中放置的是文件中要顯示出來的內容。其中的<p algin="center">與</p>為一對標簽,表示其中的內容居中顯示。<fontcolor="red">與</font>也是一對標簽,表示其中的文字字體顏色(fontcolor)為紅色(red)。<I>與</I>則表示其中的文字為斜體。

圖1-1 HTML網頁

圖1-2 網頁源文件
了解了標簽的用途后,可以很容易地理解在瀏覽器中所顯示出來的內容。超文本標記語言就是這樣一種語言,它用簡單的標記來聲明所包含的內容。在第2章中將學習更多的超文本標記語言知識。
早期的HTML設計都是使用記事本之類的文本編輯軟件來設計的,設計者需要能夠靈活地運行這些HTML標簽來創建網頁,而且網頁的效果都只能在完成后運行時才能看出來,因此開發網頁也是專業人士才能干的活。
現在,能進行網頁編輯的軟件已是遍地開花,像Dreamweaver、Frontpage這樣所見即所得的網站開發軟件大行其道,使得不懂HTML語言的普通用戶也可以過一把網頁編輯的癮。
2.動態網頁
動態網頁與靜態網頁從設計到實現都有所不同,動態網頁是在HTML的基礎上嵌入特殊的程序化編碼來設計的。編碼可以使用編程語言,如C、Java、Visual Basic等,也可以使用專門的腳本(Script)語言,如VBScript、JavaScript、PHP等。同時,在存儲時也需要使用不同的文件擴展名,如.asp、.jsp、.php等。在瀏覽時,除了需要有瀏覽器的支持外,還需要有支持相應的系統環境如ASP、JSP或PHP對其中的編碼進行編譯、解釋,在經編譯、解釋后才能在瀏覽器中顯示出正確的內容。
下面用一個例子來對動態網頁進行進一步說明。
在記事本中輸入下面的內容,文件保存時取名為test.asp。
<html> <body> <p align='center'><font size="5" color = "red" >歡迎學習ASP動態網頁技術!</font></p> <% t=time() h=hour(t) if h>12 then clr="blue" else clr="green" end if %> <font size="4" color = "<%=clr%>" >現在時間是:<%=t%></font> </body> </html>
由于文件擴展名為.asp,因此,在瀏覽時需要有ASP運行環境的支持(在下一節將學習JSP環境的搭建),否則不能瀏覽到正確的內容。瀏覽的結果按系統時間的不同會有所改變,當時間為12點以前時,顯示的時間文字為綠色,12點以后顯示的時間文字為藍色,如圖1-3所示。

圖1-3 動態網頁
在顯示網頁的IE瀏覽器下執行“查看”→“源文件”命令,可以在打開的記事本中看到網頁的HTML編碼內容,如圖1-4所示。
可以看到,這里的內容與上面編寫網頁文件時的內容并不完全相同,這是由于動態網頁必須經由系統環境進行編譯、解釋,這里看到的只是網頁內容經編譯、解釋后得到的HTML文本。

圖1-4 瀏覽動態網頁中的HTML編碼
上面的代碼中,使用“<%”與“%>”括起來的部分是動態部分,這些內容在瀏覽時是經服務器端編譯后,再將執行得到的結果與原文件中其他的HTML內容一起發送到客戶瀏覽器中顯示出來,在瀏覽器中得到的HTML編碼只是動態網頁在服務器端執行的結果,而不是全部的動態網頁內容。
其中,在HTML中嵌入的動態內容使用了兩種方式,ASP的腳本代碼段和ASP的表達式。如下所示的是ASP代碼段:
<% t=time() h=hour(t) if h>12 then clr="blue" else clr="green" end if %>
ASP的腳本代碼段都是包括在“<%”和“%>”之間,在這里可以寫入大量的腳本代碼,可以是上面所示的若干行腳本程序代碼,也可以是函數等內容。
上面的代碼中,“t=time()”表示獲取系統當前時間,并將其賦值給變量t?!癶=hour(t)”表示獲取變量t中的小時數,接下來的“if …else …end if”是一個判斷語句,它對h進行判斷,當h>12時,將變量clr賦值為blue,否則賦值為green。
除了腳本代碼段外,網頁中還使用了形如“<%=clr%>”這樣的ASP動態表達式,它的含義是將等號(=)后面部分的內容直接顯示出來。例如:
<font size="4" color = "<%=clr%>" >現在時間是:<%=t%></font>
在圖中可以看到,時間t的值為14:07:49,在執行前面的“if …else …end if”后,clr的內容為blue。因此,上面的表達式<%=clr%>和<%=t%>在顯示其內容后,得到下面的html語句:
<font size="4" color = "blue" >現在時間是:14:07:49</font>
最后,在客戶端瀏覽器中顯示出藍色文字:“現在時間是:14:07:49”。
<%=clr%>這種表達方式實際上是一個簡化的response.write方法,用于在當前位置顯示變量clr的值,在后面的章節將進一步介紹response.write方法。
從這個例子可以知道,動態網頁是由HTML內容與動態網頁的編程語言相結合,一起來完成動態內容的,在瀏覽時,動態網頁先經服務器端的系統環境(這個例子中是ASP環境)編譯、解釋,得到的內容再由客戶端瀏覽器顯示出來。
1.1.2 ASP、JSP與 CGI
從上面的學習知道,動態網頁的實現需要有相應的系統環境,例如,上例中使用的ASP。除ASP外,還有ASP.NET、JSP、CGI、PHP等,相應的動態網頁擴展名為asp、aspx、jsp、cgi、php等。
1.CGI
最早的動態網頁解決方案是CGI(Common Gateway Interface ,公共網關接口)??梢允褂貌煌木幊陶Z言如C、C++、Visual Basic、Delphi等來實現CGI,它的功能強大,技術成熟,但是編寫困難、編程效率低。同時,在這種解決方案中,當用戶發出一個CGI請求時,服務器就開啟一個新進程來進行處理,當用戶訪問量不大時還可以應付,如果訪問量大,則服務器端負荷過重,將導致系統性能急劇下降,使得訪問速度降低。因此,在當前的動態網頁設計中使用得越來越少。
2.ASP
為了在網絡中占有一席之地,隨著技術的發展,各公司分別推出了自己的動態網頁解決方案,其中使用最廣泛的是微軟推出的ASP/ASP.NET和SUN推出的JSP。
ASP(Active Server Pages,活動服務頁)是微軟公司推出的一種用以取代CGI(通用網關接口,Common Gateway Interface)的技術。最初,微軟是在發布Windows 98時,同時推出了PWS 4.0(Personal Web Server,個人Web服務器,可在Win98光盤里的ADD-ONS目錄里找到),它本身支持對ASP 2.0的解釋執行功能。在后來的Windows 2000、Windows XP、Windows 2003等系統中集成了名為IIS(Internet Informtion Server,Internet信息服務)的Web服務器,其中提供了對更高版本ASP的執行功能,因此,可以很方便地在Windows系統中實現ASP動態網頁。
簡單來講,ASP是位于服務器端的腳本運行環境,通過這種環境,用戶可以創建和運行動態的交互式Web服務器應用程序,如交互式的動態網頁,包括使用HTML表單收集和處理信息,上傳與下載等,就像用戶在使用自己的CGI程序一樣。但是ASP比CGI簡單。更重要的是,ASP使用的ActiveX技術基于開放設計環境,用戶可以自己定義和制作組件加入其中,使自己的動態網頁幾乎具有無限的擴充能力,這是傳統的CGI等程序所遠遠不及的地方。使用ASP還有個好處,就在于ASP可利用ADO(Active Data Object,活動數據對象)來方便地訪問數據庫,從而使得開發基于WWW的應用系統成為可能。
ASP是一種類似于HTML、Script與CGI的結合體,它與CGI一樣,沒有提供自己專用的編程語言,而允許用戶使用VBScript、JavaScript等常用腳本語言來編寫ASP程序。
可以看到,ASP最大的好處是除了可以包含HTML標簽外,還可以直接訪問數據庫,并可以通過ASP的組件和對象技術來使用無限擴充的ActiveX控件來進行動態網頁的開發。ASP是在Web服務器端運行的,運行后將結果以HTML格式發送到客戶端瀏覽器,因此比普通的腳本程序更安全。
ASP的技術特點如下:
(1)使用VBScript、JavaScript等簡單易懂的腳本語言,結合HTML代碼,可以快速地完成動態網站的應開發。
(2)ASP是解釋執行,無須編譯,可在服務器端直接執行。
(3)與瀏覽器無關,客戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽ASP所設計的網頁內容。ASP所使用的腳本語言VBScript、JavaScript均在Web服務器端執行,客戶端的瀏覽器不需要能夠執行這些腳本語言。
(4)ASP能與任何ActiveX Scripting語言兼容。除了可使用VBScript或JavaScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其他腳本語言,例如Perl。
(5)可使用服務器端的腳本來產生客戶端的腳本,實現客戶端的動態效果。
(6)ActiveX Server Components(ActiveX服務器組件)具有無限可擴充性??梢允褂肰isual Basic、Java、Visual C++、COBOL等程序設計語言來編寫用戶所需要的ActiveX Server Component。
ASP.NET是ASP的.NET版本,在.NET框架的支持下,具有更強的功能,更快的效率。
由于微軟市場政策的原因,ASP在使用上有一定的局限性——ASP只能運行在微軟的操作系統平臺下,其工作環境只能是微軟的IIS(Internet Informtion Server,互聯網信息服務)和PWS(Personal Web Server,個人Web服務),同時,ActiveX控件也對于操作平臺有所依賴,因此,對于跨平臺的服務不能進行良好支持。但是,Windows系統本身就占有操作系統市場的壟斷地位,再加上微軟的支持,ASP技術在動態網站中得到了廣泛的應用。
3.JSP
JSP是一種較新的動態網站開發技術。與ASP由微軟獨自開發不同,JSP是由SUN公司所倡導,眾多公司參與一起建立的一種動態網頁技術標準,它是基于Java技術的動態網頁解決方案,具有良好的可伸縮性,與Java Enterprise API緊密結合,在網絡數據庫應用