




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章ASP基礎及運行平臺本章要點:
ASP技術概述
IIS6.0安裝及設置 常用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腳本並對其進行調試。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語法的意義時,可以使用<!---->標記來定義這些批註文字。語法為<!--批註文字-->使用者在流覽網頁時,這些批註文字將不會出現在流覽器中。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;日期常量vbMonday表示星期一,其值為2(vbSunday表示星期日,其值為1);字串常量vbCr表示回車,其值就是其對應的ASCII碼值,十進位數為13。3.2.3數組變數當需要處理成組的相關變數時可以考慮使用數組變數。數組是一組元素按一定的順序組成的序列。數組中每個元素具有唯一索引號,可以通過此索引號來存取數組中的各個元素;同時,更改數組中某個元素的值也不會影響其他元素。3.2.3數組變數靜態數組和動態數組靜態數組變數必須在聲明時明確其固定的大小,並且一旦確定就不能更改。聲明數組變數的格式和變數類似,只是在數組變數的聲明中多了一個下標,該下標必須是一個確定的數值。3.2.3數組變數多維數組二維及二維以上的數組稱為多維數組。常用的二維數組可以簡單地理解為一個二維表。數組的第一個下標指定行,第二個下標指定列。3.3運算符運算是對數據的加工處理,可以用一些簡潔的符號來描述不同的運算。這些符號就是各類運算符。可以利用這些運算符將變數、常量甚至函數等連接起來,從而形成各類運算式。因此,掌握各類運算符用法和特點是學習VBScript語言的基礎。3.3.1各類運算符運算符是構成運算式的基礎。在VBScript中包含算術運算符、連接運算符、關係運算符和邏輯運算符。算術運算符 算術運算符用於執行數學計算的運算符,常用的算術運算符見下表3.3.1各類運算符_算術運算符符號名稱算術運算式舉例結果^求冪64^-232*乘法4*2080+加法9+1221-減法
(取負)39-831/除法3/21.5\整除2.51\3;11.3\4;2.2/31\2\0mod取模9mod41連接運算符加法運算符可將字串連接起來,形成新的字串。如字串運算式“hello”+“”+“everyone”的結果為“helloeveryone”。使用“&”運算符可以實現同樣的效果。與“+”不同的是,“&”運算符還能強制性地將兩個運算式(不一定是字串)做字串連接運算,如下代碼:<%a=123%><%s=”a=”&a%><%=s%>在客戶端流覽器中將顯示:a=123關係運算符符號名稱關係運算式舉例結果=等於“abc”=”ABC”False>大於“a”>”紹興”False>=大於等於21>=5True<小於“浙江”<”紹興”True<=小於等於5<=2False<>不等於“a”<>”A”TrueIs對象引用比較關係運算符使用關係運算符必須注意如下幾點:⑴若關係運算符的兩邊都為數值型,則按其數值大小進行比較。⑵若關係運算符的兩邊都為字元型,則按字元的ASCII碼大小從左到右進行比較。如果第一個字元相同,則比較第二個字元,以此類推,直到出現不同的字元為止。⑶漢字也可作為字串進行比較,但漢字字串大於西文字串。邏輯運算符符號名稱說
明Not取反運算元為假時,結果為真;否則為假And與兩個運算元均為真時,結果為真;否則為假Or或兩個運算元中有一個為真,結果為真;否則為假Xor異或兩個運算元一真一假,結果為真;否則為假Eqv等階兩個運算元同時為真或為假,結果為真;否則為假Imp蘊含第一個運算元為真,第二個為假,結果為假;否則為真3.4過程對於複雜的問題來說,可以採用結構化的程式設計思想。所謂結構化思想,就是將一個較大的程式劃分成若干個的模組,每個模組完成各自特定的功能。在VBScript中可將這些功能模組定義成一個個過程,供使用者多次調用。根據是否有返回值將過程分為子過程和函數。3.4.1子過程定義Sub子過程名(參數列表)[語句組1][ExitSub]子過程體[語句組2]EndSub調用
調用子過程的語句一般形式如下:[Call]子過程名[參數列表]Call關鍵字是可選項。如果指定該關鍵字,則不管該子過程是否傳遞參數都必須使用括弧將參數列表括起來,如:CallMyProc(“hello”,0)或者CallMyProc()
如調用前面定義的Show_str子過程,可以使用如下語句:Callshow_str(“abc”,”def”)或者使用show_str“abc”,”def”即可。3.4.2函數函數和子過程的根本不同之處在於函數需要返回值,而子過程沒有返回值。定義函數的一般形式如下:Function函數名[(參數列表)][語句組1][函數名=運算式]函數體[ExitFunction][語句組2]EndFunction3.4.2函數調用調用函數和調用子過程類似。在調用函數時,實際用到的往往是函數的返回值,因此只需在相應的位置引用函數即可。3.5程式控制語句沿襲高級語言中的結構化程式設計思想,在VBScript中,除了順序結構外,同樣提供了選擇和迴圈結構,它們是由一些選擇和迴圈程式控制語句來實現的。3.5.1條件控制語句If語句一般情況下,If語句中的條件為一個關係運算式。If語句就是根據這個運算式的值(True或False)來指定要執行的語句。If語句主要有如下幾種形式:⑴單分支結構單分支結構表示當條件運算式的值為True時,執行Then語句後面的語句塊;若運算式的值為False時,就執行EndIf語句以後的語句。主要形式如下:If條件運算式Then語句塊EndIf上述結構中,當條件為算術或字串運算式時,則根據非0或非NULL來表示True,其他情況表示False。3.5.1條件控制語句⑶If語句的嵌套結構If語句的嵌套可以實現多分支結構,它的主要形式為:If條件運算式1ThenIf條件運算式2Then語句塊1Else
語句塊2EndIFElse
語句塊3EndIf以上是一個嵌套兩層的If語句結構,使用過程中可以根據需要對If語句進行多層嵌套。只要注意每一個If語句是和離自己最近的一個EndIf語句對應的。3.5.1條件控制語句SelectCase語句雖然利用If語句的嵌套可以實現多分支結構。但隨著分支的增多,If語句的嵌套層數也隨之增加,帶來的是程式可讀性的降低,同時程式的維護也變得困難。在VBScript中,可以使用專門的SelectCase語句來實現多分支結構。SelectCase語句的一般格式為:SelectCase運算式Case運算式列表1[語句塊1]Case運算式列表2[語句塊2]...[CaseElse運算式列表n][語句塊n]EndSelect該語句的執行過程為:當測試運算式的值與Case語句中的某個運算式列表的值相同,則執行運算式列表所對應的語句塊;若測試運算式的值與所有運算式列表的值都不同,則執行CaseElse後面的語句塊。3.5.2迴圈控制語句For迴圈For迴圈常用於已知迴圈次數的情況。該語句的一般格式為:For迴圈變數=初值To終值[Step步長][語句組1][ExitFor]循環體[語句組2]Next迴圈變數起到控制迴圈次數的作用,可以通過設定迴圈變數的初值和終值來實現。關鍵字Step後可對步長設定大小,沒有設定則默認為1。關鍵字ExitFor可以放在循環體中的任意位置,一般和條件判斷語句配合使用,當滿足條件時將直接跳出迴圈。關鍵字For和Next遙相呼應,分別是迴圈開始和結束標誌。3.6VBScript中的對象
3.6.1對象的屬性、方法和事件對象就是現實世界的實體在電腦中的邏輯映射和體現。比如日常生活中使用的手錶就是一個有著各種零部件和實在功能的實體。它有材質、外形、大小、顏色等外部特徵,又有調時、鬧鈴等內部功能。在這兒,手錶的外部特徵相當於對象的屬性,而它的內部功能則相當於對象的方法。3.6.2Window對象當用戶在流覽器中打開一個頁面時,流覽器就會自動產生一些對象,這些對象存放了HTML頁面的屬性和其他相關資訊。Window對象位於流覽器對象的頂層,只要流覽器窗口打開,即使在流覽器中沒有加載任何頁面,VBScript中同樣也會建立Window對象。3.6.3其他對象Document對象在document對象中存儲整個頁面的一些資訊,包括頁面中的文本、鏈接、表單、顏色以及其他的一些對象。下表描述了該對象的主要屬性和方法。document對象可以用來設定頁面的顏色、文本或其他對象。設置顏色可用&hrrgghh形式表示,其中,&h代表是以16進製錶示顏色,rr代表紅色的深淺程度,gg代表綠色的深淺程度,bb代表藍色的深淺程度,它們均以16進制整數表示,範圍從00到ff。而其他各種顏色則這三種顏色的合成。3.6.3其他對象History對象通過History對象可以獲得最近訪問過的URL地址資訊。運用History對象的back和forward方法,能夠獲得和流覽器工具欄中的“後退”、“前進”按鈕相同的效果。第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方法暫時取消(清除)當前緩衝區已有的數據,若清除後還有數據輸出,則還會把這些數據再送到緩衝區去。在Web應用程式中,用戶流覽資訊、輸入資訊以及與伺服器的交互,都通過流覽器實現。用戶提交請求數據,必須先在流覽器頁面上輸入數據,然後通過表單向伺服器提交請求數據,伺服器將處理的結果通過流覽器再輸出到相應的頁面中。第4章介紹了有關Response對象的運用,它主要作用是把數據下載到流覽器,而Request對象則是用來讀取流覽器的資訊,例如獲取用戶通過流覽器輸入的數據。本章詳細介紹如何設計用戶輸入數據的表單以及如何處理用戶請求的數據。5.1 Web表單5.1.1 表單數據的提交在一個Web應用程式中,HTML表單(也稱窗體)是收集用戶請求數據最基本的方法。要建立一個互動式的Web應用程式,需要使用HTML表單,它可以讓用戶輸入資訊,並對此做出反應。使用表單可以建立類似複選框、單選按鈕以及文本框等常用控件(也可稱為元素)。在網上可以經常看到諸如會員註冊、用戶登錄、留言簿、論壇等用表單形式實現各種交互功能的應用。<form…>格式裏包含的屬性:⑴name屬性表示該表單的名稱。⑵method屬性表示表單的請求類型,伺服器應該如何處理由流覽器提供的URL資訊。通常包括兩種常用的屬性值:get和post。表單在發送數據時,若採用get方法,會把數據作為URL的參數。而用post方法提交,發送的資訊包含在請求的主體之中,不會顯示在URL中。通常採用post方法比較多。⑶action屬性表示將當前表單中的數據發送到哪個檔進行處理,通常是一個ASP檔。如在5_1a.asp檔的表單中action="5_1b.asp",表示將當前表單中的所有控件的值發送到5_1b.asp檔進行處理。由此可知,為什麼點擊“提交”按鈕後,流覽器會自動轉到5_1b.asp頁面。如果提交到本頁面,則可以省略action屬性。<form…>格式裏包含的屬性:⑷enctype屬性表示數據傳送MIME類型,通常可以省略。⑸target屬性表示輸出窗口或分頁的名稱,在框架中處理表單時,經常會使用。比如在點擊“提交”按鈕後,使action所指的目標也在新建頁面中打開,則可把target屬性設置為“_blank”。通常可以省略。在這裏強調的是:表單控件(包括文本框、密碼框、複選框、單選按鈕、下拉菜單控件、列表框、提交按鈕、多行文本框以及隱藏控件)必須添加在<form>…</form>之間,添加在<form>…</form>之外的控件的數據,將不會被正確提交到目標頁中。而且,一般在表單中應該至少包含一個提交按鈕,如<inputtype="submit"value="提交按鈕"name="B1">。在流覽器中通過單擊該提交按鈕,將把表單中的數據發送到目標頁面中進行處理。注意它的類型往往會是submit。5.1.2 用Request對象接收表單數據前面介紹通過指定表單的action屬性,可將表單控件的數據發送到目標頁。而在目標頁中,如何接收表單提交過來的數據呢?這裏,需要使用Requeset對象進行數據接收,Request對象接收數據簡化的格式為:
Request(參數)
其中的參數表示form表單中控件(或元素)的名稱或者是變數名。form的method屬性和Request對象接收集合的對應關係method屬性Request對象的集合PostRequest.form(參數),其中參數一般為表單form中控件的名稱getRequest.QueryString(參數),參數可以是控件的名稱,也可以是URL後跟的參數變數名5.2 Web表單控件眾所周知,要建立一個互動式的網頁,需要使用HTML表單,它可以讓管理員收集訪問該網站的用戶提供的資訊,並對此做出反應。使用表單,可以建立像文本框、按鈕、複選框、單選按鈕及列表框等控件。有了這些控件用戶就可以隨心所欲的進行交互。5.2.1 文本框文本框是最基本的表單控件,幾乎每個表單都要用到文本框控件。它的HTML格式如下:<inputtype="text"name="…"value="默認值"size="…"maxLength="…">在該格式中,以<Input>為基本標記,其中包含了type、name、size、maxlength、value等屬性,下麵逐一介紹。1.<input>標記該標記是文本框控件的起始標記,以Input開頭的控件還有:按鈕、密碼框、複選框、單選按鈕、隱藏控件等,在缺省其他屬性的情況下表示文本框控件。2.type屬性該屬性說明控件的類型。如type="text",表示文本框;type="password",表示密碼框等。實際上在表示文本框時,type屬性可以省略,因為<input>標記符缺省type屬性設為"text"。例如語句<inputname="text1">,雖然沒有指定屬性type="text",同樣可以表示一個文本框控件。5.2.1 文本框3.name屬性表示控件的名稱,一般任何一個要提交數據的控件都必須要加入該屬性。它也是Request對象接收數據的依據。例如,要接收文本框<inputname="Text1">輸入的內容,就要用Request("text1")來接收。其中的text1就是name屬性的值,作為Request對象的參數。4.value屬性表示文本框控件的默認值,指定在用戶輸入前缺省狀態下文本框中顯示的文字。例如,假設有一個文本框,讓用戶在其中輸入國別,預計大部分用戶都是中國人,則可以使用<inputname="country"value="中國">將文本框的缺省值設為“中國”。5.2.1 文本框5.size屬性該屬性控制文本框的寬度,使用時可根據需要以字元數來指定size屬性的值。6.maxlength屬性該屬性限制文本框輸入字元的個數。例如,想讓用戶輸入6個數字的郵遞區號,也就是不讓用戶輸入超過6個字元,這就要靠maxlength來實現。5.2.2 按鈕在HTML表單中使用的典型按鈕有三種,分別是重置按鈕、提交按鈕和普通按鈕,它們的HTML格式代碼如下:<inputtype="submit" value="提交按鈕"name="B1"><inputtype="reset" value="重置按鈕"name="B2"><inputtype="button" value="普通按鈕"name="B3">三種按鈕都是以<input>標記開頭,決定三種按鈕類型的是type屬性,其中submit表示提交按鈕,是專門用於提交表單內容的;reset表示重置按鈕,將當前表單中控件都恢復為默認值(value屬性的值);button表示普通按鈕,它本身沒有特殊作用,一般要結合客戶端腳本語言使用。其中,提交按鈕和重置按鈕一般都使用在表單域中。value屬性的值決定了在按鈕上顯示的文字。1.提交按鈕前面已經介紹過提交按鈕。當單擊提交按鈕時,表單內容會提交到action屬性所指定的頁面進行處理。因此,一般在表單中提交按鈕必不可少。當在FrontPage中插入表單時,一般會自動生成提交按鈕和重置按鈕。且提交按鈕必須放置在表單內部,如果放在表單之外,它將起不到提交數據的作用。2.重置按鈕重置按鈕的主要作用是將同一表單中的控件都恢復為默認值,所謂控件的默認值就是value屬性的值。這樣可以避免數據被錯誤修改。3.普通按鈕普通按鈕本身沒有特殊作用,通常需要結合客戶端腳本語言(VBScript和JavaScript腳本)一起使用,例如單擊按鈕時出現某種特效,這就要結合OnClick事件和客戶端腳本進行編程。代碼5-3使用單擊按鈕,用於關閉當前窗口。5.2.3 密碼框密碼框的工作原理與文本框類似,只是當輸入數據時不明確顯示,而是用*來代替。這樣一來,在一定程度上防止了密碼外泄。密碼框主要運用在用戶註冊和登錄介面中。5.2.4 滾動文本框普通文本框只能在一行上輸入數據,輸入的數據比較有限。滾動文本框彌補普通文本框的缺陷,它可以輸入更多的數據,且可以換行輸入。在FrontPage中要插入滾動文本框可以選擇菜單【插入】→【表單】→【滾動文本框】選項。如果需要設置滾動文本框的屬性,則可在插入的滾動文本框上單擊滑鼠右鍵,選擇“表單域屬性”,出現“滾動支本框屬性”窗口。使用滾動文本框要注意以下幾點⑴由於滾動文本框可輸入的數據較多,當某一表單要使用滾動文本框時,最好將Method屬性設置為Post,若設置成Get,則會受到傳輸數據量的限制,造成文字傳輸不完整。⑵如果要在ASP程式中使用Response.Write方法顯示滾動文本框的內容(這兒所指的不是顯示在滾動文本框上),特別需要注意換行符。滾動文本框的換行符在VbScript腳本中可使用常量VbCrlf(等於Chr(13)+Chr(10))表示,只是它在流覽窗口顯示時並不體現換行。所以應該先將其轉換成HTML語言中的換行標記<P>或者<BR>。而如果是顯示在滾動文本框上,則不需要轉換。5.2.5 複選框和單選按鈕在某些表單中用戶不需要輸入數據,而只需提供一些固定的選項讓用戶選擇,複選框和單選按鈕就是此類控件。複選框可在眾多選項中選擇多個,而在一組單選按鈕中則只允許選擇其中一個。5.2.6 下拉菜單和列表框複選框和單選按鈕都是可以讓用戶選擇要輸入的內容,下拉菜單和列表框也是提供用戶選擇的控件。
5.2.7 隱藏控件隱藏控件不顯示在窗體中,但控件資訊卻可以在窗體提交時被包含。隱藏控件有時候十分有用。在設計ASP程式時,往往會在網頁之間傳遞隱藏資訊。使用隱藏控件可以建立不依賴於Cookies的變數,這樣做既有優點也有缺點。5.3 Request對象綜述在介紹表單的同時,已經使用了Request對象接收從表單中的數據。實際上,用Request對象可以訪問任何基於HTTP請求傳遞的資訊,包括從HTML表格用POST方法或GET方法傳遞的參數,cookie和用戶認證也可以訪問客戶端發送給伺服器的二進位數據。Request對象包含QueryString、Form、Cookies、ServerVariables、ClientCertificate五個集合和一個BinaryRead方法以及一個TotalBytes屬性。5.3.1 Form集合Form集合可以接收HTML表單中用Post方法提交過來的數據。格式如下:Request.Form(element)[(index)|.Count]其中,參數element用於指定集合要檢索的表單控件元素的名稱;index為可選參數,使用該參數可以訪問多個數據值中的一個,可以是1到Request.Form(element).Count之間的任意整數;參數Count用於指定集合中元素的個數。5.3.2 QueryString集合QueryString集合用於接收用Get方法提交的表單數據,也可以檢索HTTP查詢字串中變數的值。HTTP查詢字串由問號後面的值所指定,例如有下列一個超鏈接:<AHREF="Example.asp?School=浙江工業職業技術學院">學校</A>在Example.asp的問號(?)後傳遞一個變數School,變數值為“浙江工業職業技術學院”。這樣在Example.asp代碼中,就可以用Request.QueryString("School")來接收School變數傳遞的值。GET方法提交的表單或者由用戶在流覽器地址欄中鍵入查詢均可以生成查詢字串。5.3.3 Cookies集合Cookies俗稱甜餅,可以在客戶端長期保存訪問某個網站的資訊。當第一次訪問一個WEB站點時,它會將有關資訊保存到電腦的硬碟上。下一次訪問同一個站點時,站點的頁面會讀取電腦上的Cookies,並將新的資訊保存到電腦上。5.3.4 ServerVariables集合流覽器流覽網頁使用的是HTTP協議,在HTTP的標題檔中會記錄一些客戶端的資訊,如客戶的IP地址等等,有時伺服器端需要根據不同的客戶端資訊做出不同的反映,此時需使用ServerVariables集合獲取資訊。該集合語法如下:Request.ServerVariables(伺服器環境變數)5.3.5 ClientCertificate集合Request對象的ClientCertificate集合提供了客戶數字認證。當客戶流覽器支持安全套節字層(SecureSocketsLayer,SSL)協議(即URL以HTTPS://開頭),而且流覽器所連接到Web伺服器頁運行於SSL的時候,客戶認證將被發送給Web伺服器。語法如下:Request.ClientCertificate(關鍵字)5.3.6 TotalBytes屬性Request對象只有一個只讀屬性即TotalBytes,用來指定客戶端在請求中發送的總位元組數。語法如下:Counter=Request.TotalBytes例如,用來返回客戶端發送的總位元組數腳本。<%DimBytesCountBytesCount=request.TotalBytes%>5.3.7 BinaryRead方法Request對象只有一個BinaryRead方法,檢索用POST方法從客戶端發送到伺服器的一部分數據。Request.BinaryRead方法可以直接讀取一定位元組數的參數,並返回變體類型的數組,其中包含從請求的POST段中得到的位元組(例如在ASP的Form集合中數據)。語法如下:Variant=Request.BinaryRead(Count)其中參數Variant是個變體類型的數組,用來存儲通過BinaryRead返回的資訊。Count是用BinaryRead方法所讀取的位元組數目,通常這個變數的值用於計算利用Request對象的TotalBytes屬性返回的值。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檔中。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的根目錄為基礎的。虛擬路徑調用的最大特徵是在檔或目錄前加“/”或“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老科安全培训计划课件
- 办公楼管理规范执行情况表
- 物业部保洁培训课件
- 大学社团策划主题活动方案
- 小学音乐艺术课标解读
- 新能源汽车轻量化技术对碰撞安全性能影响研究报告
- 2025年辅导员大学生就业指导试题汇编试卷(附答案)
- 2024-2025年太阳能硅片硅碇行业产业链上下游分析报告
- 水质安全培训班课件
- 人事助理每日工作总结纲要
- 空天飞机热管理系统-洞察及研究
- 讲解壮族文化
- 单位定密管理办法
- 未遂统计管理办法
- 经营性公墓建设-可行性研究报告
- 广东省事业单位公开招聘人员报名表
- 电厂消防系统培训课件
- 广东省广州市越秀区2024-2025学年七年级下学期期末考试英语试卷(含答案无听力音频及原文)
- 四不放过原则培训
- 执法办案培训课件
- 职业中介公司管理制度
评论
0/150
提交评论