




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP程式安全10.1常見ASP漏洞及安全處理ASP提供強大功能的背後,還存在一些安全方面的漏洞和不足。本章主要介紹ASP常見漏洞以及解決途徑和方法。在Windows2000系統的IIS5.0版本以及WindowsServer2003的IIS6.0版本中,有些ASP漏洞已經得到了較好的解決。介紹ASP中存在的安全隱患在一定程度上有助於提高對安全問題的重視。10.1.1
Access資料庫下載漏洞ASP結合後臺access資料庫開發應用系統在一些中小型網站中得到了廣泛採用。這種方式的主要安全隱患是,一旦訪問者知道Access資料庫的路徑和文件名,整個資料庫就存在被完全下載的可能。在此,以第8章txl.mdb資料庫為例進行解釋說明.該access資料庫存放在伺服器d:\aspcode\8\db目錄下,若使用者知道該資料庫檔存放路徑和文件名,可直接在流覽器的地址欄中輸入該路徑以及檔案名安全處理
顯然,造成這種危險的主要原因是由於知道了資料庫檔路徑和文件名。許多攻擊者往往根據站點或系統的主題對數據庫檔進行一定的猜測。因此,如果將資料庫檔另存於一個不太有實際意義的目錄中,或者將資料庫檔案名取得不太規則可大大提高系統在這方面的安全性。 此外,目前比較流行的做法就是將資料庫檔擴展名改為.asp,這樣,即便知道該資料庫檔,在客戶端流覽器中下載時也將出現亂碼10.1.2
FileSystemObject組件漏洞ASP檔通過FileSystemObject組件實現對檔的操作。這些操作主要包括對文本檔的讀寫、目錄的改名、刪除和移動等。在IIS6.0及以前各版本中,這種許可權一旦被用戶利用,伺服器上的檔就面臨著一定的危險。利用修改系統註冊表內容的方法⑴首先利用開始菜單的運行框中輸入:regedit進入註冊表;⑵查找註冊表中HKEY_CLASSES_ROOT\Scripting.FileSystemObject的鍵值,並將其改為HKEY_CLASSES_ROOT\Scripting.FileSystemObjectABC。如此,在ASP中引用該組件時就必須改為:Setfso=CreateObject("Scripting.FileSystemObjectABC")如此一來,對於一般的攻擊者來說,就很難準確知道該伺服器中的FileSystemObject組件名,因此也就達到了限制別人使用該組件的目的。10.1.3腳本漏洞在一個留言程式的輸入框中,如果用戶輸入的不是普通的文本資訊,而是帶有HTML標記或VBScript等腳本資訊,結果會怎樣呢?試看在一個普通留言框中輸入如下內容:<fontcolor=bluesize=7>我的留言!</font>
如果站點的留言板程式沒有對HTML或VBScript等腳本採取一定的避免措施,那麼,在流覽器輸出時,留言資訊的內容字體將根據用戶的輸入而變成綠色,同時字體的大小也會改變。顯然,這些輸出結果已經隨著用戶的輸入而改變。如果用戶在留言框中輸入的是一段惡意代碼的話,譬如:<ahref="http://123.net"onMouseover="while(1)i=i+1">重要提示</a>
在上述語句中,"起到的是雙引號的作用;如果在該語句中直接輸入雙引號,將得不到需要的結果。顯然,留言顯示的是一個超級鏈接,當其他用戶看到這個鏈接並單擊滑鼠後,將觸發onMouseover事件,該事件為死迴圈,從而導致頁面出現異常10.1.4密碼驗證漏洞常用站點在用戶管理中都將用戶名和密碼放在資料庫的有關表中,而在登錄程式中使用SQL語句來查詢是否為合法用戶,如代碼10-3所示。該代碼常常被作為檢驗系統合法用戶的頁面,登錄頁面利用session將用戶名和密碼傳遞到該頁面,再利用SQL語句在資料庫中進行查找是否有該用戶並密碼,找到的話結束該頁面,否則重新轉到登錄頁面。在一些實際的應用系統中,往往將用於判斷合法用戶的頁面包含在其他頁面中,若該頁面為名為IsAdmin.asp,則只要在其他頁面的開始部分加入<!--#includefile=”IsAdmin.asp”-->即可。若不是合法用戶,則轉到登錄頁面;否則結束該頁面,執行本頁面的其他內容安全處理通過修改單引號的使用可以防止該漏洞。解決該漏洞的方法是修改單引號的使用,把SQL語句中可能存在的單引號轉換成雙單引號連用的形式,這樣就避免了因單引號前後匹配造成的攻擊者繞過用戶名和密碼驗證的漏洞。主要代碼如下:<% username="'"&replace(username,"'","''")sql="select*fromuserwhereusername="&username%>10.2ASP安全配置ASP系統連接SQLServer資料庫ASP+SQLServer資料庫在一些實際應用系統中被廣泛採用,由於SQLServer資料庫默認的管理員帳戶名sa,每個使用SQL的用戶都知道存在sa帳戶。因此,在SQLServer中需要刪除sa帳戶並創建具有安全可靠密碼的其他SQL管理帳戶。ASP系統連接Access資料庫前面已經介紹過在使用Access作為後臺資料庫時,存在著整個資料庫被下載的威脅。解決的方法是為該資料庫和目錄取一個比較複雜的非常規名字,並將其放置虛擬目錄下的多層目錄中。在實際應用中,仍然可以在許多環節進行安全方面的設置。 進行Access資料庫連接時,比較直接的方法是使用如下代碼:conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq=Server.MapPath("padje12.mdb")"顯然,上述代碼的危險在於一旦該根源程式被獲取,那資料庫就一覽無餘。因此,使用Access資料庫時,最好使用本書第8章所介紹的方法,即在ODBC裏面設置好數據源,而在以後的連接代碼中就可這樣寫:conn.open"txl"在程式中記錄訪問用戶資訊記錄訪問用戶資訊對網站安全的追蹤有非常大的幫助,用戶資訊中包含了用戶使用的流覽器、停留時間以及IP地址。記錄IP地址可以查找訪問用戶的具體地點。當然,如果用戶通過代理來訪問網站,就只能記錄代理伺服器的IP地址,而不是真實的訪問機器的地址。使用最新的ASP漏洞掃描器可以掃描IIS漏洞的掃描器有許多,比較有名的有ISS,CIS和GNIT等。一般的掃描器通過掃描伺服器端口,產生一個HTML檔,該檔中說明了伺服器中的一些資訊和漏洞,包括用戶名和組的相關資訊,開放的服務和Web掃描的漏洞。10.2.2伺服器安全配置將應用程式主目錄置入NTFS格式分區NTFS是微軟基於WindowsNT內核的一種檔系統。相對於傳統的FAT和FAT32檔系統,NTFS通過特有的許可權控制提供檔和文件夾級的安全訪問機制。因此,可以定義一個或一組用戶訪問檔和目錄的不同級別。如一個Web應用程式所有者就需要有查看、更改和刪除應用程式的許可權;而訪問應用程式的用戶只應具有“只讀”許可權,以便將其限制為只能查看而不能更改應用程式。10.2.2伺服器安全配置及時安裝Windows系統最新的補丁所有的軟體系統都存有缺陷。為了修復發現的錯誤和漏洞,微軟公司會經常公佈軟體的最新補丁,用戶可以經常進入微軟官方網站瞭解和下載最新的漏洞補丁程式。這裏需要強調的是對補丁程式的安裝應該做到及時。因為發現錯誤和漏洞並進行修復往往是在現有系統遭受攻擊後發生的。否則,系統就隨時有被入侵的可能。10.2.2伺服器安全配置關閉不需要的服務如果著重考慮安全性,對一個平臺的所有抽象層進行濃縮,那麼,操作系統、進程和網路端口就是安全配置的重點。操作系統為進程提供了軟硬體的介面,而進程可打開到網路的端口。10.2.2伺服器安全配置IIS中的虛擬目錄IIS是ASP程式的開發和管理平臺,因此,它的安全設置十分重要。IIS支持虛擬目錄,建立虛擬目錄對web站點的安全性是非常重要。首先,虛擬目錄隱藏了有關站點目錄結構的資訊;而當web頁面被放置在虛擬目錄中時,通過對目錄設置不同的屬性達到對web頁面的管理,如可將靜態的HTML頁面放置在一個子目錄中並將屬性設置為“讀”,而將ASP頁面放在另一個子目錄中並將屬性設為“執行”。顯然,這樣進一步提高web站點的安全性。10.2.2伺服器安全配置設置好系統帳戶和安全策略WindowsNT系統在缺省安裝後,自動建立了Administrator和guest帳戶,許多攻擊者就是通過破解上述帳戶的密碼進入系統。因此,為安全起見,往往將Administrator系統帳戶重命名,並保證一定的密碼長度和複雜度。對於guest帳戶來說,為提高安全性,往往將其設定為禁用狀態。小結本章針對常見ASP漏洞,介紹了一些安全處理的方法;同時,對IIS安全配置等方面作了一定的闡述。通過對本章內容的學習,使讀者對ASP在安全方面的一些不足有所瞭解,並且,能夠在實踐的基礎上,靈活運用,進一步做好安全防範。
ASP基礎及運行平臺1.1 ASP技術概述ASP即ActiveServerPages,是Microsoft公司開發的伺服器端腳本環境,可用來創建動態互動式網頁並由此建立強大的Web應用程式。當伺服器收到對ASP檔的請求時,它會處理包含在用於發送給流覽器的HTML網頁檔中的伺服器端腳本代碼。除伺服器端腳本代碼外,ASP檔也可以包含文本、HTML(包括相關的客戶端腳本)和COM組件調用,其中這些組件可執行不同任務,如連接到資料庫或處理商業規則。1.1.1 Web程式設計基礎1.Web工作方式WWW(WorldWideWeb)即萬維網,是在Internet上運行的覆蓋全球的多媒體資訊系統。Web中的資訊保存在Web伺服器中,用戶使用流覽器通過網路在Web伺服器中得到有關的資訊。因此,流覽器的主要功能是解釋並顯示由Web伺服器傳送的、由HTML寫成的文檔。通常情況下,這些文檔被直接稱為Web頁面。Web頁面的基本要素有文字、圖形和超級鏈接。在流覽器中,通過單擊超級鏈接標記,用戶就能實現從一個頁面轉到另一個頁面中;而用戶在頁面中輸入的文本、聲音等各種資訊同樣可通過流覽器傳遞到Web伺服器中,從而實現系統的交互。2.超文本標記語言HTMLHTML是一種用來製作超文本文檔的簡單標記語言。用HTML編寫的超文本文檔稱為HTML文檔,也就是通常所說的那些帶有.html或.htm擴展名的網頁。事實上,HTML通過各種標記來標識文檔的結構以及標識超級鏈接的資訊。當用戶通過流覽器打開這些頁面時,流覽器就能夠解釋這些標記並顯示它的執行效果。3.動態伺服器頁面ASPASP實際上是在標準的HTML網頁上擴展了一些附加的特徵。它們就是那些尾碼名為.asp的網頁。通常一個.asp網頁是由文本、HTML和腳本命令組成。使用它可以創建和運行動態、交互的Web伺服器應用程式。1.1.2 ASP主要特點由於ASP簡單易用,借助Microsoft的COM+技術可以實現在C/S模式上實現的大部分功能。由於它只能在微軟操作系統平臺上,因此,無法實現跨平臺的應用。其主要特點是:⑴無需編譯,在伺服器端執行;⑵主要使用VBScript、JavaScript等腳本語言進行編輯設計;⑶ASP腳本不會被傳到客戶端流覽器中,可以避免源代碼洩漏,提高程式安全性;⑷ActiveX伺服器組件具有較強的擴充性,可以使用其他語言如VB、Java、VC++等編寫的ActiveX伺服器組件。⑸ASP程式的執行與流覽器版本無關。ASP程式是在伺服器端被解釋成相應的HTML頁面,只要流覽器支持該HTML就行。1.2 IIS6.0安裝及設置微軟WindowsServer2003家族的Internet資訊服務(InternetInformationService,IIS)在互聯網及企業內部網路上提供了集成、可靠、可伸縮、安全和可管理的Web伺服器功能。IIS是用於為動態網路應用程式創建強大的通信平臺的工具。在以WindowsServer2003為伺服器平臺的組織可使用IIS6.0來管理和控制Internet或其Intranet上的網頁。IIS6.0支持用於開發、實現和管理Web應用程式的最新Web標準(如MicrosoftASP.NET、XML以及簡單對象訪問協議(SOAP)。IIS6.0包括一些面向組織、IT專家和Web管理員的新功能,它們旨在為單臺IIS伺服器或多臺伺服器上可能擁有的數千個網站實現性能、可靠性和安全性目標。1.2.1 IIS6.0安裝與Windows2000Server稍有不同的是,默認情況下,微軟沒有直接將IIS6.0安裝到WindowsServer2003系統中,主要原因是為了進一步防止惡意用戶和攻擊者。1.2.2 IIS6.0設置IIS安裝完成後只能為靜態內容提供服務,對於動態頁面來說,流覽器會出現一個404錯誤,提示“檔或目錄未找到”,主要原因是系統在安裝之初是在高度安全和“鎖定”的模式下運行的。默認情況下,ASP、ASP.NET、在伺服器端的包含檔、WebDAV發佈和FrontPage®ServerExtensions等功能只有在手動啟用時才能工作。通過【開始】菜單再次進入【管理您的伺服器】對話框,如圖1-4所示。注意此時出現的對話框和圖1-1稍有不同,該對話框多了一個應用程式伺服器選單。用戶可以閱讀關於應用程式伺服器的各種資訊,也可單擊【管理此應用程式伺服器】直接打開【應用程式伺服器】窗口,展開【Internet資訊服務(IIS)管理器】目錄樹,可以看到應用程式池、網站和Web服務擴展三個子目錄,如圖1-5所示。1.2.2 IIS6.0設置1.3 編輯器幾乎所有的編輯軟體都可以直接對ASP進行處理。除了普通的文本編輯軟體外,許多軟體集成開發環境如VisualBasic、Delphi以及專業級網頁製作軟體如Dreamweaver、FrontPage等都提供了對ASP的支持。其中,最原始、最通用的、並且也是最難使用的編輯軟體應該是記事本。下麵簡單介紹一些常用的編輯ASP的工具。1.3 編輯器記事本從字元編輯的角度來看,ASP腳本在記事本中就是一個文本檔,與一般文本檔不同在於其檔的擴展名不再是“.txt”,而是“.asp”。對於HTML檔的控制標記來說,都可以將它視為基本的“符號”再加上HTML檔的控制命令而已。因此,不論是HTML檔或是ASP程式代碼對於記事本而言,都屬於一般的文本檔。記事本由於佔用記憶體較少、使用簡單、執行較快而受到許多ASP編程人員的歡迎。但由於它僅提供純文本檔的編輯功能,並沒有提供相應HTML或ASP的標記和驗證等功能,因此,初學者再使用記事本編輯ASP腳本時,記住一些控制標記或ASP指令部分顯得十分重要。1.3 編輯器專業級網頁製作工具DreamweaverMXMacromedia公司的DreamweaverMX2004是建立Web站點和應用程式的專業工具。作為一款專業的HTML編輯器,它可用於對Web站點、頁面和Web應用程式進行設計、編碼和開發。DreamweaverMX2004提供的可視化編輯功能用於快速創建Web頁面而無需編寫代碼;同時,Dreamweaver還包括許多與編碼相關的工具和功能,借助這些功能可以使用伺服器語言,如ASP、ASP.NET、ColdFusion標記語言(CFML)、JSP和PHP等用於生成支持動態資料庫的Web應用程式。1.3 編輯器微軟FrontPage2000Microsoft公司的FrontPage作為網頁設計工具,在功能上沒有Dreamweaver強大,但完全可以實現一個複雜網頁的設計,可以編輯ASP程式,其主要介面如圖1-13所示。使用FrontPage打開一個ASP頁面一般佔用十幾兆記憶體空間。1.3 編輯器微軟腳本編輯器微軟腳本編輯器(MicrosoftScriptEditor,MSE)用於查看和編輯HTML檔中的HTML標記,向檔中添加VBScript或Jscript腳本並對其進行調試。小結
ASP由於簡單實用受到廣泛歡迎,借助Microsoft的COM+技術幾乎可以實現在C/S能夠實現的所有功能,主要缺點是只能運行在Windows平臺上。本章內容主要介紹ASP技術基本概念,並根據實踐操作需要對其運行和編輯環境做了深入闡述。
ASP資料庫應用8.1資料庫設計基礎資料庫是電腦軟體的重要分支,企業資訊管理系統、人事管理系統和學校成績查詢管理系統等都需要後臺資料庫支持。目前,很多軟體開發人員都在運用各種工具開發資料庫應用程式,而網路與資料庫的結合更是資料庫應用程式的發展趨勢。ASP在網路資料庫方面具有很大的優越性。利用ASP語言可以快速開發簡單高效的網路資料庫程式,如留言簿、論壇以及基於網路的各種資訊查詢系統等。本章以Access為數據庫平臺,詳細講解ASP開發資料庫程式的各種方法。8.1.1資料庫系統概述資料庫系統主要由三大部分組成:資料庫管理系統(DBMS)、資料庫應用程式和數據庫。其中,資料庫是指按一定結構組織在一起的相關數據的集合;而DBMS是專門負責組織和管理數據資訊的程式,是資料庫系統的核心組成部分。用戶通過資料庫應用程式能夠獲取、顯示和更新由DBMS存儲的數據,通過應用程式提供的管理介面實現對數據庫中數據的訪問。資料庫由一個或多個表組成,每個表是由若干記錄組成。記錄是資訊處理的基本單位,且每條記錄在結構上完全相同。例如有一張保存通訊錄資訊的表,該表由編號、姓名、性別、出生日期、電話、地址、郵件地址等列構成。8.1.2Access資料庫管理系統資料庫管理系統是幫助用戶建立和管理資料庫的軟體系統,目前比較流行的大型資料庫管理系統有:SQLServer、IBMDB2、Oracle、Sybase、Informix等,而小型資料庫管理系統有Access、FoxPro、Pradox等。在ASP中使用較多的是Access和SQLServer資料庫管理系統。本書以Access桌面資料庫為主,因為Access資料庫比較簡單,在一般的小型網站中使用綽綽有餘,如網上留言簿、論壇等程式大多使用Access資料庫。而且Access資料庫可以很快的轉換成SQLServer資料庫。8.1.3建立Access資料庫Access資料庫是MicrosoftOffice辦公軟體中的一員,可以通過Office默認自動安裝。在建立資料庫檔之前,首先要進行系統分析,對數據庫進行合理的規劃。實際應用中,這是最重要的一步。要深入瞭解用戶需求,也就是說要掌握用戶使用該軟體的具體要求,需要進行一定的需求分析。真正掌握用戶的需求後,才能確定資料庫中需要哪些字段來存儲數據,以減少數據冗餘。資料庫中表和字段的多少,要按照實際需求來定。資料庫設計是否合理直接影響到程式開發和維護的難易程度,所以建立資料庫時一定要慎重。8.2設置數據源ASP中為方便存儲資料庫,需要通過資料庫存儲組件ADO來實現。在操作任何資料庫之前,首先必須連接到資料庫。ASP連接到資料庫的方法很多,其中很重要的方法是通過ODBC數據源來完成。8.2.1ODBC簡介ODBC是開放資料庫連接的英文縮寫,意為在不同的資料庫管理系統上存取數據。例如,有一個可使用SQL語句存取資料庫記錄的程式,此時ODBC可以讓用戶使用此程式直接存取MicrosoftAccess資料庫中的數據。為此,必須為系統添加稱為“驅動程式”的軟體組件,ODBC會幫助用戶添加並配置這些驅動程式。8.2.2ODBC數據源的創建下麵介紹如何建立ODBC的連接。由於Windows98/NT與Windows2000系統在操作上基本相同,因此以Windows2000操作系統為例,創建txl.mdb資料庫的ODBC數據源,步驟如下:8.2.3測試ODBC數據源前面已經介紹了ODBC數據源的設置。接下來,以ADO對象為基礎,使用ODBC數據源與Access資料庫檔txl.mdb進行連接,同時,使用SQL查詢語句嘗試取得txl.mdb資料庫中“Userlist”表中的字段名稱,作為ODBC數據源實際測試的驗證。8.3常用SQL語句簡介SQL是StructureQueryLanguage的縮寫,即結構化查詢語言。在ASP資料庫操作時,處處離不開SQL。SQL不僅可以實現記錄的查詢、插入、修改和刪除以及數據表的建立、修改、刪除等操作,還可以實現其他更複雜的操作。在一般的資料庫應用程式中,對數據的增、刪、改、查操作最為廣泛,下麵介紹一些簡單實用的SQL語句,如SELECT、INSERT、UPDATE和DELETE語句。8.3.1查詢SELECT語句基本的Select語句的格式如下:
SELECT[TOP數值]字段列表[as列名]FROM表名
[WHERE查詢條件][GROUPBY分組字段][HAVING分組條件][ORDERBY字段名[ASC|DESC]]8.3.2刪除DELETE語句DELETE語句用於刪除數據表中的記錄。格式如下:
DELETEFROM表名WHERE條件8.3.3插入INSERT語句INSERT語句的具體形式如下:
INSERTINTO
數據表名(字段名1,字段名2,…) VALUES(字段值1,字段值2,…)8.3.4 UPDATE語句UPDATE的語法如下:
UPDATE數據表名
SET字段名1=字段值1[,字段名2=字段值2,
字段名N=字段值N]WHERE更新條件8.4訪問資料庫基礎ASP通過ADO來訪問各種資料庫。ADO全稱為ActivexDataObjects,可以實現用戶與資料庫進行交互的組件。使用ADO來可以訪問MicrosoftAccess,MicrosoftSQL和Oracle資料庫中的資訊,甚至可以從MicrosoftExcel表格中讀取資訊。ADO提供了多種對象來運算元據庫,其中包括連接對象Connection、命令對象Command和記錄集對象Recordset等。ASP通過這些對象,可編寫簡單的腳本連接到與OLEDB相容的數據源,如數據庫、Excel等。OLEDB是一個系統級的編程介面,它提供了一套標準的COM介面,用來管理數據存儲。另外,還可以使用ADO模型訪問與開放式資料庫互聯(ODBC)相容的資料庫。8.4.1Connection對象Connection對象又稱連接對象,主要用來建立與資料庫的連接。只有建立連接後才能利用其他對象對數據庫進行各種操作。所以Connection對象是對數據庫操作的前提,在用ASP腳本運算元據庫之前,必須要利用Connection對象建立與OLEDB相容的數據源或者ODBC相容的資料庫之間的連接。8.4.2RecordSet對象Recordset對象是ADO中使用最普遍的對象,它含有從數據存儲中提取的數據集。它是一個記錄的集合,用於檢索和更新資料庫。資料庫應用程式通常用Connection對象建立鏈接並用Recordset對象處理返回的數據。8.4.2RecordSet對象Recordset對象是擁有這些記錄的對象。可以更改(增加、更新和刪除)記錄集中的記錄,上下移動記錄,過濾記錄並只顯示部分內容等等。Recordset對象也包含Fields集合,Fields集合中有記錄集中每一個字段(列)的Filed對象。所以,通過Recordset對象可以獲得記錄的每個字段的值。小結ADO是ActiveXDataObjects的縮寫,它是一種面向對象的、與語言無關的數據訪問介面。ASP資料庫訪問可以通過ADO實現。SQL是結構化查詢語言,專門用於查詢和操作關係型資料庫。1986年被國際標準化組織規定為國際標準,許多資料庫廠商如Oracle、IBMDB2、MicrosoftSQLServer、ACCESS都提供了對SQL的支持。本章主要介紹常用SQL的基本語法以及ADO訪問Access資料庫的基本方法;同時對Connection、Recordset、Command等對象作了一定闡述。通過大量實例深入介紹了資料庫增、刪、改、查等操作的基本技巧和記錄內容的分頁技術。
ASP中的會話6.1 Session對象本章討論ASP中另兩個對象,就是Application和Session對象。要在同一個ASP程式的不同頁面之間傳遞數據,最直接的方法可以採用表單提交的方式或者採用查詢字串(QueryString)的方法來實現,當然也可以採用Cookies方法實現把數據從一個頁面傳遞到另外一個頁面。使用Application和Session對象能夠輕易完成這些功能。把客戶數據在各頁面之間進行傳遞,這就是會話。6.1.1 Session簡介使用Session對象可實現保存特定用戶的資訊。訪問者從訪問某個特定主頁到離開為止的那段時間,每個訪問者都會單獨獲得一個Session對象,也就是用戶在同一個網站裏從一個頁面跳轉到另外一個頁面時,該Session資訊仍然存在。這裏的同一個網站指的是虛擬目錄。用戶在同一個網站的任何一個頁面都可以存取Session對象的有關資訊。6.1.1 Session簡介Session對象利用Cookie進行資訊處理。當用戶提出請求後,服務端就會在用戶流覽器上創建一個Cookie對象。當某個Session結束時,就意味著該Cookie已經過期。為這個用戶創建的Cookie名稱是SessionID,該Cookie唯一目的是為每個用戶提供不同的身份認證。在一個應用程式中,當客戶端啟動一個Session時,ASP會自動生成一個長整型SessionID,並把這個SessionID傳遞給客戶端流覽器。流覽器會把這個SessionID存放在Cookies內,即暫存於客戶端硬碟中。而當用戶轉到同一個應用程式的其他頁面再次請求該Session對象時,ASP就會查找保存該SessionID的Cookies,並返回對應的Session資訊。最後,當用戶離開網站時,也就是當這個Session結束時,該Cookies資訊會從硬碟上自動刪除。6.1.2 利用Session對象存儲資訊Session對象使用非常簡單,它的語法為:Session("Session名稱")=變數值如有以下代碼:<%Session("UserName")="李逵"'保存字串資訊到Session變數Session("UserName")中Session("UserName")=Name '保存Name變數的值保存到Session變數中Session("Age")=25 '把數字資訊保存到Session變數中Response.Write(Session("UserName"))'輸出Session變數%>6.1.3 Session的內容集合前面介紹用Session("Session名稱")來存取Session變數,實際上幾乎所有的Session存儲的內容均存在Contents集合中。例如,下麵兩個語句是等效的:<%Session("MyVar")="Value"%><%Session.Contents("MyVar")="Value"%>正如前面對集合的討論中提到,可利用Count屬性來檢查集合的數量,同樣也可利用FOREACH,FOR...NEXT迴圈來顯示Contents所有內容6.1.4 利用Session存儲數組資訊Session對象存儲數組的方法跟前面講過的方法基本相同,要注意的是,Session對象往往被當作一個集合使用。當Session在存儲數組時,把數組當成一個整體來看待,即只能對數組整體進行存取,不能直接對某個數組元素進行修改6.1.5 Session對象的有效期用Timeout屬性控制Session的有效期 當用戶離開當前站點而去訪問另一個站點,或者關閉所有該站點的網頁時,Session會話自動結束。若用戶一直打開某個網頁而很長時間沒有提出請求或者刷新該網頁,那麼這個Session會話是否一直存在呢?是不是直到關閉流覽器或者轉向其他站點時才結束呢?6.1.5 Session對象的有效期用Abandon方法強行結束Session會話 該方法釋放Web伺服器中保存有關用戶會話資訊的存儲空間。但是該方法並不影響其他用戶的會話資訊。如果不明確地調用Abandon方法,Web伺服器會一直保存所有會話資訊,直到會話結束。語法如下:
Session.Abandon
該語句可刪除所有Session變數,且只有當包含該語句的網頁執行結束後才能成功地刪除Session資訊。6.1.6 Session事件Session對象共有兩個事件(Event)。分別是Session_OnStart事件和Session_OnEnd事件。其中,Session_OnStart事件是當還沒有在伺服器上實例化會話的用戶向伺服器請求任意一個頁面時(Session開始時)被觸發;而Session_OnEnd事件是在用戶會話結束時或腳本調用Session對象的Abandon方法時被觸發。6.2 Application對象Session對象是用來記載特定用戶的資訊,它的內容因人而異,每個訪問用戶都有一個獨立的Session來保存自己的資訊,不可共用,只能被用戶自己訪問;Application對象則好比是一個公共場所,它記載的資訊是可以同時被大家共用,也就說Application對象是公用的。6.2.2 使用Application對象存儲資訊Application對象存儲資訊的方法跟Sesssion對象差不多,它的語法如下:Application("Application名稱")=變數值或者:Application.Contents("Application名稱")=變數值這兩種賦值方法是等價的,在使用時往往省略Contents。Contents集合的運用跟Session對象中的Contents相同,這裏不再詳細闡述。6.2.3 Application事件 Application對象中的Application_OnStart事件在首次創建新會話之前發生。伺服器啟動並允許對應用程式所包含的檔進行請求時觸發Application_OnStart事件。 Application_OnEnd事件則在應用程式退出時在Session_OnEnd事件之後發生。兩個事件的處理過程必須寫在Global.asa檔中。小結本章主要介紹Session對象與Application對象常用屬性和方法,利用它們可實現不同網頁間數據的相互傳遞。因此,也被稱作網頁間的會話。其中,Session對象主要傳遞單個會話用戶的私有資訊;而Application對象則存儲了所有用戶的共用資訊。對本章提供的諸如聊天室等具體實例,需要進一步地熟悉和掌握。
HTML基礎2.1 HTML語言概述
HTML(HyperTextMarkupLanguage)即超文本標記語言,是學習ASP的基礎。HTML由一些特定符號和語法組成,並按照一定格式標記文本和圖像等元素。客戶端流覽器根據HTML標記解釋並顯示其內容。2.1.1 HTML標記與組件HTML標記
HTML控制數據顯示格式的方式是通過一組前後呼應的HTML標記來實現。為控制數據顯示格式可將一組特定的HTML標記包含在需要控制的對象中間。每一組HTML標記以“<標記名稱>”為開始,以“</標記名稱>”作為結尾標記。有關HTML標記控制對象顯示的語法格式如下:
<標記名稱[屬性1=屬性值1屬性2=屬性值2…]>
欲控制對象
</標記名稱>2.1.1 HTML標記與組件組件的概念 用一組HTML標記將需要控制對象包含在中間時,這個需要控制對象與包含文字的HTML標記將被稱之為一個組件。大部分的HTML標記還可根據實際情況對需要控制對象的一些屬性進行設置。2.1.1 HTML標記與組件HTML層的概念 在HTML語法中,每個由HTML標記與文字所形成的組件還可以包含另一個組件,整個HTML檔就像是一個大組件,包含了許多小組件,因此就形成了層的概念。 所有HTML檔最外層的組件由<HTML>標記建立。在<HTML>標記所建構的組件中,還包含兩個主要的子組件,這兩個子組件由<HEAD>與<BODY>標記建立。其中<HEAD>標記建立的組件內容為檔標題,而<BODY>標記建立的組件內容為檔內容。2.1.2 HTML開發環境 HTML檔其實是一個擴展名為.htm或.html的純文本檔。因此,所有文字編輯軟體都可以用來撰寫HTML檔,如:Windows系統的記事本Notepad、Word等等。
WWW的日益盛行使得在Windows平臺下出現了許多可視化的網頁開發工具,如:FrontPage、Dreamweaver等。這些網頁開發軟體提供了進行網頁設計的平臺和環境。許多並不十分熟悉HTML語法的網頁設計者通過這些專業級的網頁開發環境往往可以設計出功能強大的頁面。2.2 HTML網頁格式<HTML>標記 一個HTML檔,事實上是一個由<HTML>標記所建立的組件,所有檔的內容都應該被包含在此標記中。而在這個組件中,整個檔將被區分為兩個部分,一是由<HEAD>標記所建立的檔標題,另一個則是由<BODY>標記所建立的檔主體。<HEAD>標記由<HEAD>標記所定義的組件中,並不放網頁的任何內容,而是放置有關這份HTML檔的資訊,例如:檔的標題、編碼方式、URL等等。這些資訊大部分是提供索引、辨認或其他應用的使用。<TITLE>標記
<TITLE>標記使用於<HEAD>標記中,用於標識此HTML檔的標題名稱。而被標識的標題名稱,將顯示在流覽器的標題欄中。<BODY>標記 由<BODY>標記所建立的組件,為該HTML檔的內容主體。此HTML檔顯示的所有檔內容都將放在這個組件中,此標記屬性的說明請參考2.3.1節的說明。而在這個組件中,可以利用各種HTML標記控制網頁顯示內容的格式、編排與效果。關於各種應用於控制HTML檔格式的標記說明,請參考以下章節的說明。2.2.3 檔主體標記
定義於<BODY>標記內的內容就是HTML檔的主體,也就是網頁的主要內容,這些內容依照各種HTML標記的控制,呈現在流覽器的視窗中。而設定於<BODY>標記內的屬性,可用於控制整個頁面的顯示方式。2.2.3 檔主體標記Bgcolor屬性
Bgcolor屬性主要控制檔的背景顏色,語法為:
bgcolor=“顏色”顏色可以用兩種方法表示,可以直接指定顏色的英文名稱,常用的基本顏色名稱如表2-1所示。另外,也可以利用16進位數值的方式指定顏色,其語法如下:
#RRGGBBRR代表紅色,GG代表綠色,BB代表藍色,以00到FF的值表示三種顏色成分的多少,以指定出這三種原色以多少成分組成新顏色。如下面的網頁背景為綠色:
<bodybgcolor=”#00FF00”>2.3 文字及表格處理標題標記<Hn></Hn> <Hn></Hn>標記用於標識網頁中的標題文字,被標記的文字將以粗體的方式顯示在網頁中。其語法為:
<Hn>標題文字</Hn>
其中n的範圍為1到6,因此共有6個層次的標題。2.3 文字及表格處理Align屬性 在<Hn></Hn>標記中較為常用的屬性為align,該屬性用於控制標題的對齊方式,其語法如下:
align=left或center或rignt
以上三個設定值將依次把標題文字的水準對齊方式設定為靠左對齊、置中對齊以及靠右對齊。2.3 文字及表格處理段落標記<P></P>
利用<P></P>標記所標識的文字,代表為同一個段落的文字。在流覽器中,不同段落文字間將會以一行空白加以間隔,以便區別出文字的不同段落。語法如下:
<P>文字</P>
在<P>標記中較常用的屬性為align屬性,通過此屬性可以控制段落的對齊方式。其語法如下:
align=left或center或right
以上三個設定值將依次把段落文字的水準對齊方式設為靠左對齊、置中對齊以及靠右對齊。2.3 文字及表格處理換行標記<BR>
換行標記是一個沒有結尾標記的標記,HTML檔中任何位置只要使用了<BR>標記,當檔顯示於流覽器中時,該位置之後的文字將顯示於下一行。 注意,在一般的文本檔中,只要按下鍵盤上的Enter鍵便會產生一個換行符,是文本檔中的文字分行顯示。但是在HTML檔中,由Enter鍵所產生的換行符流覽器並不會視為換行符。因此,若需要將某位置之後的文字顯示於下一行時,必須使用<BR>標記。當然利用<P>標記也可以達到分行顯示數據的效果,但兩個段落間將以一行空白做為間隔。2.3 文字及表格處理水準分隔線<HR> <HR>標記將會在網頁上畫出一條橫跨網頁的水準分隔線,通常可以用於分割不同的文字段落。下麵說明一些常用於控制<HR>標記所建立水準分隔線樣式的屬性。⑴size屬性 該屬性設置水平線的粗細,以像素(pixel)為單位表示,將建立粗細為10個pixel的水準分隔線的語法為:<HRsize=10>⑵width屬性 該屬性設置水平線的寬度,可以用像素(pixel)為單位表示,也可以使用螢幕的百分比表示。下麵的語句將建立寬度為螢幕長度50%的水準分隔線:<HRwidth=50%>⑶align屬性 該屬性控制水準分隔線的對齊方式,有置中、靠左、靠右三種方式。語法如下:
align=center或left或right⑷color屬性 該屬性設置線條的顏色,顏色可以用英文名稱或是16進位數值設定,有關顏色值的設定請參考2-2-3節中有關bgcolor屬性設定的說明。語法為:color=顏色值⑸noshade屬性 該屬性設置水平線不顯示3D陰影。2.3.2 文字格式標記字型標記<font></font>
字型標記通常用於控制文字的字型、大小與顏色。控制的方式是利用屬性設定來完成,下麵介紹各屬性的使用方式,語法如下:
<font屬性1=值1屬性2=值2……>需要控制的文字</font>⑴face屬性該屬性用於控制文字使用字型的屬性,語法為:
face=“字型名稱” 如果使用者的系統中並不存在所指定的字型名稱,將使用預設的字型。⑵size屬性該屬性用於控制文字大小的屬性,語法為:
size=字體等級 在IE中,字體的等級共有7級,7為最大的字體。⑶color屬性該屬性用於設定文字的顏色,語法為:
color=“顏色” 顏色的設定可運用英文名稱,或是16進位數值。有關顏色值的設定請參考2.2.3節中有關bgcolor屬性的說明。2.3.2 文字格式標記特定文字樣式標記
HTML中有一些標記可以設定以特別的樣式顯示文字。每一種流覽器對此類標記的顯示可能會有些不同。下麵將列出較為常用特定文字樣式的標記。2.3.3 表格的建立建立表格的四種標記 在網頁中,表格的運用是非常重要的技巧。在HTML語法中,表格的建立主要運用<TABLE>、<TH>、<TR>、<TD>四個標記完成。下麵是這四個標記的說明:⑴<TABLE></TABLE>標記該標記標識表格組件。一個表格組件,由數個列、單元格與標題格子組件組成。⑵<TR></TR>標記該標記定義表格的一列,通常包含數組由<TD>或<TH>所定義的單元格。⑶<TD></TD>標記該標記定義表格的單元格。⑷<TH></TH>標記該標記定義表格的標題單元格,此單元格中的文字將以粗體的方式顯示。在一個基本的表格組件中,必須包含一組<TABLE>標記、一組<TR>標記與一組<TD>標記。語法如下:<TABLE><TR><TD></TD></TR></TABLE>上述語法將建立只有一個單元格的表格。2.3.3 表格的建立<TABLE>標記的屬性 下麵將說明一些<TABLE>標記常用的屬性,這些屬性將用於控制整個表格組件的格式。⑴Border屬性用於控制表格框線的厚度。語法如下:
Border=數值 數值的設定值為一整數,使用的單位為像素(pixel)。⑵cellspacing屬性用於控制表格框線到表格邊框的距離,也就是框線的寬度。
cellspacing=數值 數值的設定值為一整數,使用的單位為像素(pixel)。⑶cellpadding屬性用於控制存儲單元內文字的邊緣到單元格邊框的距離。
cellpadding=數值 數值的設定為一整數,使用的單位為像素(pixel)。2.4 其他常用標記在介紹其他HTML標記之前,先簡單介紹一下相對路徑與絕對路徑的概念,在接下來的小節中,需要運用這些概念來引用存在於同一個Web伺服器中的檔或網頁。⑴相對路徑以引用檔的網頁所在位置為參考基礎而建立的目錄路徑。因此,當不同網頁引用同一個檔時,所使用的路徑都不相同,故稱之為相對。⑵絕對路徑以Web站點根目錄為參考基礎的目錄路徑。“絕對”意指當所有網頁應用同一個檔時,所使用的路徑都是一樣的。2.4.2超級鏈接的標記<A>與</A>HTML檔中最重要的應用之一就是超級鏈接,在網頁上使用超級鏈接,可提供使用者鏈接至網路上其他網頁的功能。當使用者單擊網頁中的超級鏈接後,流覽器便會流覽超級鏈接位置的網頁。建立超級鏈接所使用的標記為<A></A>,其語法為:<AHref=“鏈接位置”>超級鏈接名稱</A>語法中部分說明如下:
超級鏈接名稱該字串以明文形式顯示在網頁中。除了可以使用字串外,在<A></A>標記中,也可使用位圖文件或其他圖形檔,此時,該圖文件即代表超鏈接。當使用者將滑鼠指針移到代表超鏈接的文字或圖文件上時,游標形態變成手狀,表示使用者可單擊該鏈接。
鏈接位置用於指定href屬性,用來放置超鏈接的目標,可使用URL指定。URL的格式由使用的通信協議、鏈接地址與檔位置所組成。語法如下:通信協議://鏈接地址/檔位置…/檔案名稱2.4.3圖文件加載標記<IMG>圖文件加載標記,用於將圖文件加載HTML檔中顯示。使用此標記加載GIF、JPG等格式的圖片檔。利用<IMG>標記加載圖文件的最基本語法如下:<ingsrc=“圖文件存儲位置與名稱”>5其中src屬性為<IMG>標記的必要屬性,用於指定需要加載圖文件的儲存位置與名稱。而待加載圖文件的位置可以是在同一伺服器中的檔或是位於網路上的其他伺服器。若是同一主機內的檔,可運用相對路徑指出圖文件的位置。下麵的語句將加載位於上一層目錄中名為mark.gif的圖文件。<imgsrc=“‥/mark.gif”>若是從網路上其他伺服器加載,則設定src屬性時,必須使用URL格式,下麵的語句將從0這個伺服器的根目錄下加載名稱為mark.gif的圖文件。<imgsrc=”0/mard.gif”>2.4.4批註標記<!>當需要在HTML檔中說明HTML語法的意義時,可以使用<!---->標記來定義這些批註文字。語法為<!--批註文字-->使用者在流覽網頁時,這些批註文字將不會出現在流覽器中。小結
HTML是在SGML定義下的一個描述性語言,它不是C++或Java之類的程式設計語言,而僅僅是一種標識語言。只要明白各種標記的用法便基本上掌握HTML;同時,HTML的格式簡單,主要由文字及標記組合而成。在編輯環境方面,任何文字編輯器都可以使用,只要能將檔另存成ASCII純文字格式即可,當然使用專業的網頁編輯軟體更能起到事半功倍的作用。
Response對象第4章Response對象WEB應用程式在處理ASP腳本時,任何沒有包含在ASP腳本定界符或者<SCRIPT>標記中的內容都將被直接返回給流覽器。如果要用ASP腳本來顯示流覽器輸出內容,則需要通過Response對象來實現。Response對象主要用於控制和管理發送到流覽器上的數據。Response本身就是“回應”的意思,也就是把數據下載給流覽器。前面已經使用過Response對象的Write方法輸出數據到流覽器,如:Response.Write“歡迎光臨本網站!”4.1 使用Write方法Write方法是Response對象中使用率最高的一個方法,它可以直接向HTTP回應主題寫入資訊,也就是將資訊從服務端直接發送到客戶端流覽器中。語法如下:Response.Write(變數或字串)4.1.2 Write方法和HTML標記相互嵌套編寫ASP程式時,ASP腳本語句和HTML語言可以相互嵌套。通常也可以把HTML語言用Response.Write方法輸出。4.2 用Redirect方法實現網頁間跳轉Response對象除了提供Write方法,可以輸出數據到流覽器之外,也可以實現網頁的跳轉,使用的方法如下所示:Response.Redirect目標網頁網址在網頁中,也可以通過超鏈接引導用戶在各個頁面之間跳轉,但必須要在用戶單擊超鏈接時才行,而Response.Redirect方法則可以自動跳轉到另外一個網頁,也稱為重定向。4.3 使用End方法使用Response.End方法可以結束對緩衝區中的所有數據的存儲,並立即把緩衝區中的當前內容發送到流覽器顯示出來。在調用End方法以後出現的所有代碼都將不再執行。例如:<%Response.Write"張三,你好" '在流覽器中顯示出來Response.End '調用END方法,停止執行後面的程式Response.Write"歡迎光臨本站!" '不會執行,即不顯示%>4.4 ASP緩衝技術Buffer屬性決定是否把ASP腳本創建的內容作為一個整體一次發送給流覽器,還是在每一行內容被創建並進入HTML代碼流中立即把它們發送到客戶流覽器上。Buffer屬性的值為布爾量。在ASP3.0以後,默認情況下Buffer屬性值為True。如果Buffer屬性設置為False,則每一句執行的結果都會立即發送到流覽器上顯示出來。如果Buffer屬性設置為True,那麼Web伺服器會對腳本的所有輸出結果進行緩衝,直到對腳本的處理結束,或者調用了Response對象的Flush或者End方法為止,這時才把緩衝區中的所有數據一次性的發送到客戶端流覽器中。4.4 ASP緩衝技術4.4.1 Buffer屬性設置一般來說,設置Buffer屬性應該在沒有任何數據輸出到流覽器之前進行,否則會出錯。但是從ASP3.0以後,默認情況下緩衝為打開狀態,即Buffer屬性為True,所以,無論在ASP檔的什麼位置加入“Response.Buffer=True”都是允許的。下麵的程式可以正常執行。4.4.2 送出和取消緩衝區的數據一旦將Response.Buffer設置為True,Web伺服器必須等到執行完整個ASP文檔之後,才會將緩衝區的數據下載到流覽器。但也可調用Response.End或Response.Flush方法強制將緩衝區的數據送出,其中Response.End結束程式的執行,而Response.Flush則繼續執行程式。此外,也可調用Response.Clear方法暫時取消(清除)當前緩衝區已有的數據,若清除後還有數據輸出,則還會把這些數據再送到緩衝區去。小結本章通過對ASP中最常用的Response對象的方法和屬性的介紹,為進一步學習ASP打好基礎。重點需要掌握Write方法、Redirect方法、End方法以及其他常用的屬性和方法。
Server對象和服務端包含指令7.1 相對路徑和虛擬路徑前面章節已經介紹了ASP中的Request、Response、Session和Application等內置對象。ASP中另一個比較重要的對象是Server對象。本章從相對路徑和虛擬路徑的概念入手,重點介紹Server對象的相關屬性和方法。另外還介紹了運用服務端包含指令#include在ASP檔中包含其他檔的方法。7.1 相對路徑和虛擬路徑在網站設計中有一個很重要的概念,那就是路徑。如在網頁中加載圖片或者設置超鏈接時,都必須要指定圖片或者鏈接網頁的路徑。一般都是採用相對路徑或虛擬路徑的方法來實現,這裏對“相對路徑”和“虛擬路徑”的概念進行介紹。7.1.1 相對路徑相對路徑是以當前網頁所在的路徑為基礎。在網頁製作過程中,可能會使用不同的表示法來指定檔的所在位置,例如引用圖片可使用如下表示法:
<IMGSRC="photo.jpg">
或者:
<IMGSRC="Images/photo.jpg">
超級鏈接可使用:
<AHREF="index.asp">
或者:
<AHREF="../index.asp">7.1.2 虛擬路徑虛擬路徑是以WWW的根目錄為基礎的。虛擬路徑調用的最大特徵是在檔或目錄前加“/”或“\”。假設WWW的根目錄為“C:\Inetpub\wwwroot”,則虛擬路徑訪問方法如表7-2所示。虛擬路徑和相對路徑的最大區別就是:虛擬路徑是以WWW的根目錄為基礎的,引用時要在前面加上“/”和“\”符號;而相對路徑則是以當前網頁所在路徑為基礎的,引用情況有三種,分別是只有檔案名、以檔夾名開頭和以“../”符號開頭。7.2 Server對象Server對象提供了訪問伺服器對象的屬性和方法,專門為處理伺服器上的特定任務而設計。這些特定的任務主要是與伺服器環境和處理活動有關的任務。伺服器提供的一系列對象模型,一般需要通過Server對象創建具體對象模型的實例。它包含一個屬性和七種方法,通過它們可以實現格式化數據、管理其他網頁的執行、創建外部對象和組件等特定任務。7.2.1 ScriptTimeout屬性ScriptTimeout屬性是Server對象的唯一一個屬性,用於訪問一個正在執行的ASP網頁的腳本超時值,返回類型是整型,缺省值為90,單位是秒。該屬性的主要作用是規定腳本檔最長的執行時間,如果超過該屬性設定的時間將自動停止頁面的執行,並從記憶體中刪除包含可能進入死迴圈的錯誤頁面或者是那些長時間等待其他資源的網頁。這就有效地防止伺服器因存在錯誤頁面而超載。對於運行時間較長的頁面應該把這個屬性值設的大一些。7.2.2 Server對象的方法CreateObject方法
CreateObject方法是Server對象最主要也是最常用的方法,主要用於創建組件、應用對象或者腳本對象。在ASP實際開發中經常使用,尤其是在檔操作和數據庫操作中。此外,要調用第三方組件也必須使用該方法創建一個實例。7.2.2 Server對象的方法MapPath方法
MapPath方法可將“網址路徑”(“相對路徑”和“虛擬路徑”)轉換成伺服器上相應的物理路徑。ASP對某些類型的資料庫檔進行操作時就必須要使用物理路徑。語法如下:
Server.MapPath(Path)
其中參數Path是指要映射物理目錄的相對路徑或虛擬路徑。該方法將返回Path所指路徑的物理路徑。7.2.2 Server對象的方法HtmlEncode方法 該方法主要是將字串中的HTML標記字元轉換成字元實體。把<、>、&和雙引號,分別轉換為等價的HTML條目,即<、>、&、"等等。語法如下:
Server.HtmlEncode(字串)7.2.2 Server對象的方法URLEncode方法該方法將URL編碼規則,包括轉義字元應用到字串中。例如把把空格轉換成“+”。語法如下:Server.UrlEncode(“String”)參數String指定要編碼的字串,如下代碼:<%Response.WriteServer.URLEncode("中國China")%>輸出結果是:%D6%D0%B9%FA+China7.2.2 Server對象的方法Execute方法
Execute方法可以在當前ASP檔中調用和執行另一個ASP檔的腳本代碼。執行完畢後,繼續執行Execute方法後的語句。也就是可以在當前ASP檔中,包含其他ASP檔,作用類似於服務端包含指令#include。有了Execute方法,可以把複雜的ASP應用程式分成模組化、可重複使用的若干個檔組成部分,以便在需要的時候隨時調用。7.2.2 Server對象的方法Transfer方法 該方法作用跟Execute方法類似,但和Execute方法不一樣,Transfer在處理完被調用的ASP頁面後,並不返回到調用處執行,而是停止腳本執行。7.3 服務端包含指令#Include在ASP中,可以使用#include指令把另一個檔的內容插入到當前頁面中,語法如下:
<!--#includeFile/Virtual="FileName"-->
其中File和Virtual關鍵字用來指名包含檔的路徑的類型,其中FileName是要包含的檔的路徑和文件名。被包含的檔沒有擴展名的限制,即可以包含任何擴展名的檔,一般在實際應用中,往往習慣給被包含檔指定尾碼名為.inc,以便和其他類型的檔區分開來。小結本章內容主要介紹Server對象的方法和屬性,同時對其他一些常用概念如對相對路徑和絕對路徑、Include包含語句作了具體說明。
VBScript基礎3.1VBScript基本概念VBScript是一種腳本語言。所謂腳本語言就是介於HTML和Java、VB等編程語言之間的腳本命令。HTML通常用於格式化和鏈接文本,而編程語言通常用於向電腦發出一系列複雜的指令。腳本語言在功能上與編程語言接近而在語法和規則上比編程語言簡單。當執行腳本程式時,腳本程式將一整套命令發送給腳本解釋器(即腳本引擎),由腳本解釋器進行翻譯並將其轉換成伺服器所能執行的命令。當然,同其他編程語言一樣,腳本程式的編寫也遵循一定的規則,如果想使用特定的腳本語言,那麼伺服器上必須要有能解釋這種腳本語言的腳本解釋器。目前比較流行的腳本語言有兩種:VBScript和JavaScript。其中VBScript基於Microsoft公司的VisualBasic語言;而JavaScript基於SUN公司的Java語言。3.1.1 概述ASP本身並不是一種腳本語言,它只是提供了一種嵌在HTML頁面中的腳本語言得以運行的環境。也就是說,只要伺服器端支持這些腳本語言,在同一個ASP檔中使用不同的腳本語言也是可行的。因為所有的一切都將在伺服器端進行,客戶流覽器得到的只是一個程式執行的結果。下麵具體介紹VBScript腳本在ASP中的使用。3.1.1 概述VBScript腳本還可以使用兩個特殊字元<%和%>來標識是否為伺服器端腳本。<%和%>能夠將這些腳本和HTML區分出來,表明哪些是由伺服器來執行的,哪些是由流覽器來完成的。在ASP中,較多的使用這種方式。下麵以一個示例說明伺服器端腳本和HTML在一個網頁中的集成。3.1.2 數據類型在VBScript只有一種稱為Variant的數據類型。Variant是特殊的數據類型,它可根據使用的方式而包含不同類別的資訊。Variant也是VBScript中唯一的數據類型,所以它也是VBScript中所有函數的返回值的數據類型。3.2變數和常量使用變數主要是為了方便引用電腦記憶體單元,該記憶體單元中可以存儲腳本運行時可以更改的程式資訊。譬如,可以創建一個名為WebCount的變數用來存儲用戶訪問某個Web頁面的次數。使用變數時並不需要瞭解變數在電腦記憶體中的地址,只要通過變數名引用就可以查看或更改變數的值。在VBScript中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant。3.2.1 變數隱式聲明和顯式聲明在VBScript中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant類型。在VB腳本環境中,可以直接在腳本中使用變數名這一簡單方式隱式聲明變數。但這往往容易產生異常,主要是因為這樣有時會由於變數名被拼錯而導致在運行腳本時出現意外的結果。因此,一般通過使用DIM語句、PUBLIC語句和PRIVATE語句實現對一個變數的顯式聲明。當同時聲明多個變數時,注意中間用逗號隔開,聲明格式為:DIMvarname1[,varname2][,varname3]...其中,DIM語句為變數聲明的識別字,varname1、varname2等分別為聲明的變數名。[]表示為任選項,表示在DIM語句中可以同時聲明一個或多個變數。3.2.1 變數命名規則變數命名必須遵循VBScript的標準命名規則。變數命名必須遵循:⑴第一個字元必須是字母。⑵不能包含嵌入的句點。⑶長度不能超過255個字元。⑷在被聲明的作用域內必須唯一。3.2.1 變數變數的類型在使用DIM語句聲明一個變數時,並沒有為該變數定義數據類型。因為VBScript中所有變數都是相同的數據類型,即variant型變數。variant是一種特殊的變數類型,它可以代表許多其他類型的變數。3.2.1 變數變數的作用域與存活期變數的作用域指的是變數的有效範圍,因為變數被聲明後不是在任何地方都可以被使用,每個變數都有它的使用範圍,在作用域內可以使用變數,在作用域外則變數不可見。變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被SCRIPT中所有過程所識別,稱為SCRIPT級變數,具有SCRIPT級作用域。3.2.2常量常量聲明和使用常量是用來代替一個數或字串的名稱。在VBScript中也可以聲明一個常量,所謂常量就是一旦聲明,以後其值就不能更改了。聲明格式為:CONSTconstname=expression其中,const語句為常量聲明的識別字,constname為聲明的常量名,expression為常量運算式。和變數聲明類似,在const語句中一次也可以聲明多個常量,中間用逗號隔開,如下:CONSTPI=3.14159,CN=”china”3.2.2常量固有常量VBScript中有許多系統自己聲明的常量,稱為固有常量,用戶可以直接使用。常用的固有常量包括:日期和時間常量、字串常量、比較常量、顏色常量等等。如PI數學常數約等於3.1415926535897932;日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拆迁小区退房协议书
- 施工单位免责协议书
- 承担银行还款协议书
- 惩罚男方婚前协议书
- 开店合作合同协议书
- 整套家具转让协议书
- 承办培训会议协议书
- 建水代打离婚协议书
- 放弃土地继承协议书
- 成立公司出资协议书
- 关门梁引水电站压力管道设计说明
- dgt801系列数字式发电机变压器组保护装置调试大纲
- 关于建立涉农贷款专项统计制的通知银发号
- 300B电子管技术参数
- 基于PLC的数控车床电气控制系统设计毕业论文_(2)[1]
- 古典概型 教学设计
- 国家开放大学《理工英语3》章节测试参考答案
- 钢管截面积、强度、挠度、惯性矩计算公式
- 管道单线图符号说明
- 施工现场平面布置和临时设施、临时道路布置
- Teamcenter10.1系统基础操作资料
评论
0/150
提交评论