Page)是由微软所发展的一套建构双向互动式网页的技术由_第1页
Page)是由微软所发展的一套建构双向互动式网页的技术由_第2页
Page)是由微软所发展的一套建构双向互动式网页的技术由_第3页
Page)是由微软所发展的一套建构双向互动式网页的技术由_第4页
Page)是由微软所发展的一套建构双向互动式网页的技术由_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、15ASP入門15-1認識ASPASP(Active Server Page)是由微軟所發展的一套建構雙向互動式網頁的技術。由於HTML是一種標注語言(Markup Language),擅長版面編排及展示,不像一般程式語言(Programming Language)具備流程控制、條件分支、迴圈結構、輸出入互動 . 等能力。於是為了使WWW網頁具備與使用者互動的功能,乃有各種內嵌於HTML中的描述式語言(Scripting Language)被發展出來,如前述的JavaScript和VBScript。但是這些描述式語言的用途僅止於應用於前端與使用者互動的程式設計上,至於要完成與後端伺服器的互動,

2、便力有未逮。建立雙向互動式網頁最早的技術當推CGI,目前都還非常普遍的被使用著。CGI 是Common Gateway Interface的縮寫,中文翻譯為共同閘道介面,1993年以來廣為WWW所採用。CGI並不是一種程式語言或資料格式,而是一套規範 WWW伺服器和描述程式(Script)之間溝通的介面標準。一般都把遵循CGI介面標準的描述程式簡稱為CGI程式,其主要用途是接收、處理資料。其運作方式為:用戶端將要求(Request)傳送到伺服器,伺服器將其轉換成各種環境變數(Environment variables)傳送給對應的CGI程式處理,CGI程式經由讀取環境變數而得知客戶端的要求,隨

3、後將處理結果透過伺服器回送給客戶端。最常用來寫CGI程式的語言有:l Unix 系統:Shell Script(sh、csh或ksh)、Perl、C/C+。l Microsoft Windows 系統:DOS 批次檔(.bat)、Visual Basic、C/C+、可在Windows環境下執行的Perl版本,如BigPerl。l Apple麥金塔系統:AppleScript、HyperCard、可在Mac執行的Perl版本,如MacPerl。CGI雖然在Unix相容的作業平台上使用得相當普遍,但是在微軟的Windows作業環境中卻水土不服,效能低落。微軟為了解決這個問題乃提出ASP方案,應用物

4、件導向的程式設計理念,利用內建的Request、Response、Server、Session、Application . 等物件來運作,不再像CGI一樣依賴環境變數,使得程式的撰寫容易得多,執行的效率也高得多。再者,透過ADO物件,ASP程式可以很容易的存取各類型資料庫;外掛各式各樣的ActiveX,ASP程式和瀏覽器的功能便可不斷擴充。基於以上種種原因,ASP推出不久便得到廣泛的注意和使用。然而,ASP的缺點是它是微軟為自己的作業系統(Windows)和伺服器(IIS或PWS)所量身定作的,所以如果您的伺服器是在Unix相容的作業系統中執行,那麼ASP就英雄無用武之地了。ASP程式也是由描

5、述語言(Script)所構成的,JavaScript和VBScript是目前ASP程式常用的兩種描述語言。但是由於ASP程式是在伺服器端執行,所以它是屬於Server-end Script而非Client-end Script。15-2 ASP基本語法ASP原始碼(附檔名為 .asp)和HTML、JavaScript、VBScript(附檔名為 .htm或 .html)一樣都是文字檔,只不過HTML、JavaScript、VBScript文檔是將原始碼送至瀏覽器解譯、顯示,使用者直接便可使用瀏覽器檢視原始碼;ASP程式的原始碼則在Server端解譯,執行結果才送至瀏覽器顯示,因此使用者看到的不

6、是ASP原始碼而是其執行結果。撰寫ASP程式的基本步驟為:1. 使用任何文書編輯器編輯原始碼;2. 儲存成一般文字檔,附檔名使用 .asp;3. 將該程式送至伺服器的特定目錄下(例如:c:Inetpubwwwroot)。ASP標準語法如下:ASP程式碼也可以採用簡潔語法,將HTML原始碼和ASP程式碼交雜在一起:HTML原始碼HTML原始碼所以ASP實際上是一個可以在Server端執行的Script!從以上語法可知所有的ASP程式碼都被一組特定標籤 所刮住,內嵌在HTML原始碼中,底下這個範例說明了此一概念。U 範例 15-1A(ch15-01A.asp)本範例示範ASP程式碼如何嵌入HTML

7、原始碼中。 原始碼:範例15-1A簡易ASP範例這一行是一般的HTML文字%response.write 這一行是由ASP所輸出的文字%這一行,也是一般的HTML文字 執行結果: 說明:1. ASP程式碼由 刮住,內嵌在HTML原始碼中。2. ASP程式必須使用瀏覽器透過http方式連上伺服器才能執行,無法單獨使用瀏覽器執行。3. ASP程式使用response.write將資料輸出至瀏覽器。4. ASP程式採用VBScript為預設語法。當然,如果您比較熟悉JavaScript,您也可以使用JavaScript來撰寫ASP程式。這時,就要採用以下的語法了:ASP程式碼U 範例 15-1B(c

8、h15-01B.asp)本範例示範如何使用JavaScript來撰寫ASP程式。 原始碼:範例15-1Bresponse.write(使用JavaScript語法寫ASP);response.write(ASP程式也是一種Script程式);response.write(不過它是一種Server-end Script);response.write(VBScript是ASP預設的語法);response.write(當然也可以使用JavaScript); 執行結果:15-3 ASP常用物件ASP採用了物件導向的概念,內建了許多物件供程式設計師使用,以下介紹幾個比較常用的。15-3-1 Resp

9、onse:輸出物件Response是ASP的一個非常重要的物件,提供了許多屬性(Property)和方法(Method),此處介紹兩個比較常用的方法Write和Redirect:Write方法 用途:將資料輸出到網頁上。 語法:Response.Write 要輸出的資料 精簡語法:如果要輸出的資料非常簡短,可以將Response.Write精簡成如下語法內嵌在HTML原始碼中。U 範例15-2(ch15-02.asp)範例15-2擲骰子遊戲您的點數是:請按重新整理便可重擲 執行結果:Redirect方法 用途:將網頁轉向某個特定的網址。 語法:Response.Redirect 網址URLU

10、範例 15-3(ch15-03.asp)本範例示範如何依據不同條件將網頁轉向到不同的目的地。 程式碼:%randomizex = rnd * 10if x 執行結果: 15-3-2 Request:輸入物件Request是ASP程式取得表單輸入資料的重要物件,此處介紹附屬於Response的兩個常用的屬性集(Collection):Form和QueryString。Form屬性集 用途:取得表單以POST方法傳送的資料。 語法:Request.Form(表單物件名稱)U 範例 15-4(ch15-04.htm、ch15-04.asp)本範例首先由ch15-04.htm送出一個表單給使用者,填妥

11、資料後以POST方法回送給Server端的ch15-04.asp處理。 表單畫面原始碼:ch15-04.htm範例15-4範例: ch15-04.htm: 以 POST 方法傳送表單資料 ch15-04.asp: 以 Request.Form 讀取表單資料 表單畫面:姓名: 性別:帥哥美女 執行結果: 說明:在HTML原始碼中(ch15-04.htm)以下述標籤指定表單資料必須以POST方式傳送給ch15-04.asp程式處理:因此,使用者填妥資料後按下送出鈕,表單中的欄位資料便會被送回Server端由以下的ch15-04.asp程式來處理。 ASP程式:ch15-04.asp範例15-04範

12、例: ch15-04.htm: 以 POST 方法傳送表單資料 ch15-04.asp: 以 Request.Form 讀取表單資料 您的資料為: % Response.Write 姓名: & Request.Form(txtName) & Response.Write 性別: & Request.Form(rdoSex) % 說明:在此ASP程式中(ch15-04.asp),以Request.Form(txtName) 取得上述表單中的txtName資料,以Request.Form(rdoSex) 取得rdoSex資料,並以Response.Write把資料輸出為如下畫面。 執行結果:Que

13、ryString屬性集 用途:取得 (1) 表單以GET方法傳送的資料,或 (2) 伴隨在網址後面的查詢字串(Query String)。 語法:Request. QueryString (表單物件名稱)或Request.QueryString(引數名稱)U 範例 15-5(ch15-05.htm、ch15-05.asp)本範例首先由ch15-05.htm送出一個表單給使用者,填妥資料後以GET方法回送給Server端的ch15-05.asp處理。 表單畫面原始碼:ch15-04.htm範例15-5範例: ch15-05.htm: 以 GET 方法傳送表單資料 ch15-05.asp: 以 R

14、equest.QueryString 讀取表單資料 表單畫面:姓名: 性別:帥哥美女 執行結果: 說明:在HTML原始碼中(ch15-05.htm)以下述標籤指定表單資料必須以GET方式傳送給ch15-05.asp程式處理:因此,使用者填妥資料後按下送出鈕,表單中的欄位資料便會被送回Server端由以下的ch15-05.asp程式來處理。 ASP程式:ch15-05.asp範例15-05範例: ch15-05.htm: 以 GET 方法傳送表單資料 ch15-05.asp: 以 Request.QueryString 讀取表單資料 您的資料為: % Response.Write 姓名: & R

15、equest.QueryString(txtName) & Response.Write 性別: & Request. QueryString (rdoSex) % 說明:在此ASP程式中(ch15-05.asp),以Request.QueryString(txtName) 取得上述表單中的txtName資料,以Request.QueryString(rdoSex) 取得rdoSex資料,並以Response.Write把資料輸出為如下畫面。表單的GET方法和POST方法最大不同在於GET會將表單內各欄位的資料串成查詢字串(Query String)格式,以問號 ? 串接在網址後面送出:網址?

16、查詢字串其中的查詢字串則是由各欄位的名稱作為引數名稱,欄位的內容作為引數值,每組引數之間以 & 作為區隔,如下:引數名稱1=引數值1&引數名稱2=引數值2&.&引數名稱n=引數值n 執行結果:註:畫面中看似亂碼的引數值%AAL%ABH%A6%A8,是因為中文編碼的結果。由於Query String採用開放原則傳遞引數,所以資料輸入不一定要透過表單,只要遵循前述的格式,組成一個完整的查詢字串接在網址後面,即可將引數夾帶給ASP程式處理,如下圖所示。另外,也可以利用超連結方式來夾帶查詢字串,如下所示: 超連結 15-3-3 Server:伺服器物件Server是ASP的一個非常重要的物件,提供了許

17、多屬性(Property)和方法(Method),此處僅介紹比較常用的方法CreateObject:MapPath方法 用途:傳回虛擬路徑所對應的實際路徑。 語法:Server.MapPath(虛擬路徑)CreateObject方法 用途:在Server端的ASP程式中建立一個新的ActiveX物件。 語法:Server.CreateObject(ActiveX物件名稱)通常Server可以省略而簡寫成:CreateObject(ActiveX物件名稱)以下僅以檔案系統物件和資料庫物件來說明ASP程式搭配ActiveX物件的用法。15-4檔案系統物件ASP程式可利用檔案系統物件(File Sy

18、stem Object),對伺服器端的檔案進行存取動作。15-4-1建立檔案系統物件 物件名稱:Scripting.FileSystemObject 建立語法:Set fs = CreateObject(Scripting.FileSystemObject) 說明:1. 這段指令會傳回一個FileSystemObject物件。2. fs為自訂的變數名稱,用來接收傳回的FileSystemObject物件。15-4-2文字檔的處理我們可以利用檔案系統物件的OpenTextFile方法來處理文字檔。開啟/建立文字檔案由FileSystemObject的OpenText方法所建立的物件稱為FileT

19、extStream物件,提供了ASP程式處理文字檔的重要管道。 語法:Set ts = fsobj.OpenTextFile(filename, iomode, creat, format) 說明:fsobj是任意的一個檔案系統物件。OpenTextFile會傳回一個TextStream物件。ts是自訂的變數名稱,此處用來接收傳回的TextStream物件。filename為檔案名稱,必須是一個字串。iomode為檔案的存取模式:常數值存取模式說明1讀取模式能從檔案中讀取資料2寫入模式能將資料寫入檔案並覆寫原資料8附加模式能將資料寫入檔案附加在原資料之後creat為True時表示建立新檔。fo

20、rmat為檔案存取格式:常數值存取格式說明0ASCII以ASCII格式存取該檔-1Unicode以Unicode格式存取該檔-2預設格式以預設格式存取該檔TextStream物件提供了許多存取文字檔的方法,以下僅說明常用的Close、Read、ReadLine、Write、WriteLine:關閉文字檔 語法: tsobj.Close讀取文字檔案 語法:l 讀取特定長度的字元tsobj.Read(讀取的字元數)l 讀取一行文字tsobj.ReadLine寫入文字檔案 語法:l 寫入資料不附加換行符號tsobj.Write(要寫入的資料)l 寫入資料附加換行符號tsobj.WriteLine(要

21、寫入的資料) 說明:以上的tsobj皆代表TextStream物件。U 範例 15-6(ch15-06.asp)本範例以FileSystemObject物件和TextStream物件設計訪客計數器。 原始碼:範例15-6範例:訪客計數器 說明:1. CreateObject(Scripting.FileSystemObject)建立FileSystemObject。2. Server.MapPath(.)取得本程式所在的實際路徑。3. FileExists 可用來判斷檔案存不存在。4. 用OpenTextFile開啟檔案、建立檔案及設定檔案的存取方式。5. 用ReadLin讀取資料;用Writ

22、eLine寫入資料。6. 用Close關閉檔案。7. Set fs = nothing 釋回FileSystemObject。 執行結果:15-5資料庫物件ASP程式可利用微軟所發展的ADO物件(ActiveX Data Objects)來存取資料庫。ADO物件是由許多有用的資料庫物件所構成的,其架構圖如下。本節僅介紹常用的Connection物件和Recordset物件。15-5-1 Connection物件物件用途說明Connection物件是所有ADO架構的最上層,主要負責與資料庫建立連結,並提供從屬物件來操作資料庫。因此要存取資料庫一定要新建立Connection物件。 物件名稱:AD

23、ODB.Connection 建立Connection物件的語法: Set conn = CreateObject(ADODB.Connection) 說明:1. 這段指令會傳回一個Connection物件。2. conn為自訂的變數名稱,用來接收傳回的Connection物件。開啟資料庫連結 Open方法:有了Connection物件,便可利用它所提供的Open方法與特定資料庫建立實際的連結。 語法: conn.Open ConnectionString, UserID, Password 說明:l ConnectionString1. 若使用DSN,則ConnectionString可設定

24、為ODBC中所定義的DSN(Data Source Name)名稱。2. 若不使用DSN,以Access和SQL Server資料庫為例,其ConnectionString設定分別為:Access資料庫:driver=Microsoft Access Driver (*.mdb);dbq=c:mydbtest.mdbSQL Server資料庫:driver=SQL Server; server=emls;uid=sy;pwd=hy;database=mydbl UserID:使用者名稱l Password:密碼15-5-2 Recordset物件物件用途說明Recordset物件代表的是資料庫

25、中的資料集合,它提供了許多操作資料庫的方法。 物件名稱:ADODB.Recordset 建立Recordset物件的語法: Set rs = CreateObject(ADODB.Recordset ) 說明:1. 這段指令會傳回一個Recordset物件。2. rs為自訂的變數名稱,用來接收傳回的Recordset物件。Recordset物件的重要方法 開啟/產生記錄集的方法:Open:將Connection所連結的資料庫藉由特定SQL查詢句開啟,而產生一個記錄集物件。 rs.Open SQL, conn, cursortype, locktype其中:SQL為一段SQL敘述;conn為一個

26、動作中的Connection物件;currsortype為記錄集存取型態;locktype為記錄集共享方式。 關閉記錄集的方法:Close:關閉現有的記錄集物件。 移動記錄指標的方法:MoveFirst:移到的第一筆記錄。MoveNext:移到的下一筆記錄。MovePrevious:移到的上一筆記錄。MoveLast:移到最後一筆記錄。 搜尋記錄的方法:Find:找尋特定記錄。 判別記錄指標位置的方法:EOF:判斷是否到了檔案結束處。BOF:判斷是否到了檔案啟始處。 增刪記錄的方法:AddNew:新增資料。Delete:刪除資料。Update:修改資料。U 範例 15-7(ch15-07.as

27、p)本範例說明如何利用ADO物件和ODBC資料來源連結,以存取Access資料庫 ch15-07.mdb。 資料庫內容: ODBC資料來源名稱(DSN):book由於以下的ASP程式碼要利用ADO物件,並透過ODBC來連結上述資料庫,因此我們必須先設定ODBC資料來源,步驟如下:l 步驟一:開啟控制台,選擇ODBC資料來源。l 步驟二:選擇系統資料來源名稱,按新增。l 步驟三:選擇適合您的資料庫使用的驅動程式,此處為Microsoft Access Driver (*.mdb),按完成。l 步驟四:輸入資料來源名稱,本例為book,按選取。l 步驟五:切換工作路徑到資料庫所在的資料夾,選取該檔

28、後按確定回到ODBC Microsoft Access設定畫面,再按確定。l 步驟六:回到ODBC資料來源管理員畫面後,可以看到多了一個項目book。經過以上設定之後,便可以使用book這個資料來源名稱,來代表ch15-07.mdb這個需要Microsoft Access 驅動程式才能存取的資料庫。以下就來看看ASP程式碼: 原始碼:範例15-7書目資料庫書名作者出版社 執行結果:U 範例 15-8(ch15-08.asp)本範例說明如何利用ADO物件,不需要ODBC的DSN設定,而直接利用Access驅動程式存取資料庫 ch15-08.mdb。 資料庫內容:ch15-08.mdb資料庫內容基本上和ch15-07.mdb完全一樣。 原始碼:範例15-8本範例使用以下的ConnectionString直接開啟Access檔案: 書目資料庫書名作者出版社 執行結果:15-6資料庫查詢範例本節利用範例說明如何搭配HTML表單和ASP程式,完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论