390 likes | 504 Views
ASP 教學. 報告人:楊 剛 中華民國九十二年九月二十日. 認識 ASP. Active Server Page 一詞通常譯為「 伺服端動態網頁 」, 顧名思義,所謂伺服端動態網頁是指伺服端可以 根據訪客的使用情況 或 所輸入的資料 , 而動態的 產生相對應的動作 來回應訪客,以達到互動的效果。 我們利用 ASP 來建構 三層式的 Web 結構 。. 瀏覽器、 Microsoft IIS + ASP 、資料庫.
E N D
ASP教學 報告人:楊 剛 中華民國九十二年九月二十日
認識ASP • Active Server Page 一詞通常譯為「伺服端動態網頁」, 顧名思義,所謂伺服端動態網頁是指伺服端可以根據訪客的使用情況或所輸入的資料, 而動態的產生相對應的動作來回應訪客,以達到互動的效果。我們利用 ASP 來建構三層式的 Web 結構。 瀏覽器、Microsoft IIS + ASP、資料庫
ASP 並不是專指某種程式語言,而是與程式無關的描述語言執行環境,只要 Web 伺服器(ActiveX Scripting Host) 安裝了適當的解譯程式(ActiveX Scripting Engine),Host 便能呼叫 Engine 來執行 Script。 一般常見的 Scripting 語言有 VBScript、JavaScript 等。ASP 的主要目的是用來建立互動式的網頁,如訪客留言、線上投票、新聞論壇、線上圖書館、 搜尋引擎…等。我們利用 ASP 來建構三層式的 Web 結構。
顯示頁面 歡迎大家來學ASP今天是 : 2003/9/20現在時間是 :下午 07:32:24 • 在 ASP 網頁中,網頁主體分為程式碼和非程式碼兩部分,程式碼的部分以<%標籤起頭, 以%>標籤結尾,而非程式碼部分則和一般 HTML 網頁完全相同。 • 網頁中顯示日期和時間的程式寫法如下
<%For i = 1 to 6%> <p align=center><font size=<%=i%>>歡迎大家來學ASP</font></p> <%next%> 歡迎大家來學ASP 歡迎大家來學ASP 歡迎大家來學ASP 歡迎大家來學ASP 歡迎大家來學ASP 歡迎大家來學ASP
在互動式網頁中究竟如何表現「互動性」呢?在互動的過程中 Scripting 語言能做些什麼事? 在「靜態」的網頁中,訪客只能單方面的瀏覽網頁內容,而在「互動式」的網頁中,訪客不只是能瀏覽網頁內容, 客戶端還能在網頁上的表單中登錄資料,然後提交表單資料給伺服端,這就表現了「互動性」。
伺服端收到資料後,進行資料處理和驗證工作,再根據實際狀況來回應客戶端, 但如果所有訪客的資料都在伺服端進行處理和驗證,伺服端的負荷勢必很重, 我們若在網頁中插入一段以 Scripting 語言所寫的程式,讓它在客戶端執行, 替我們驗證客戶所提交資料的正確性,若資料不在合理範圍或不正確,表單就不得提交, 直到資料正確或在合理的範圍內,表單才得提交,這就降低了伺服端的工作負荷, 也就是,「互動的過程」中,有些工作在伺服端執行,而有些工作則在客戶端執行。
ASP表單 • 表單是一種非常重要的網頁元件,訪客透過表單輸入客戶帳號和密碼,瀏覽者透過表單在留言版上輸入留言或意見,客戶透過表單在網頁上下訂單,查詢者透過表單輸入查詢條件,也就是說,表單是互動式網頁的輸入介面。在此,我們利用一張簡單的表單來說明表單的基本結構。
表單由<Form>標籤建立,其完整的語法如: • <Form Action:執行回應動作的ASP檔案路徑與名稱 • Method=Post或 Get Name=表單名稱> 表單中的控制項 • </Form>。 Form 標籤中有三項有關的屬性:
Action:當表單送出資料後,執行處理表單資料或回應動作。 通常,我們會設計一個 ASP 檔來處理表單資料或回應訪客,這個位置就填上那個 ASP 檔的全名, 若在這個位置沒有設定任何檔名,就由網頁本身來處理表單資料或執行回應訪客的動作。 • Name:表單的名稱。 • Method:傳送資料的方式。有Post和 Get 兩種方式,預設值是 Get 方式。 • 用 Get 方式時,系統會將使用者輸入的資料附加在 Action 屬性設定的 URL 後端, 中間以問號?隔開,在 ASP 文件中利用 Request 物件的 QueryString 集合取出資料內容。 • 用 Post 方式是先將資料包裝起來再傳送出去,在 ASP 文件中透過 Request 物件的 Form 集合取得表單欄位內容。
在表單中可插入各種控制項 • 指令按鈕 • 單行文字方塊 • 多行文字方塊 • 下拉式清單 • 選擇鈕 • 核取方塊
ASP 內建物件 • ASP 的內建物件︰ • Application • Session • Server • Response • Request
Application 物件 • 一個虛擬目錄之下的所有 ASP 程式構成一個 Web 應用程式,在多工的執行狀態下, 可能有很多的使用者執行同一個 Web 應用程式, 若要所有執行同一個 Web 應用程式的使用者能共享資訊, 就須使用 Application 物件。
Session 物件 • Session 物件可以讓我們儲存並利用有關使用者的訊息,控制使用者和網站之間的互動過程。 Server 物件 • Server 物件可以讓我們利用 ASP 程式來掌控 Web 伺服器的執行狀態, 並建立伺服端的 ActiveX 元件。
Response 物件 • Response 物件如同一般程式語言的輸出/輸出指令,用來輸出訊息到瀏覽器或接收瀏覽器的訊息。 Request 物件 • 我們利用 Request 物件取得瀏覽器上透過 HTTP 通訊協定傳送給伺服端的訊息。
Application 物件 • Web 應用程式中,Application 物件內含的所有資訊, 可以流通於該應用程式的所有 ASP 網頁之間, 所有在線上執行這個應用程式的使用者都能共用這些資訊。 Application 物件產生於 Web 應用程式開始被執行時,也就是, 只要有使用者進入一個 Web 應用程式, 伺服器上就產生一個代表該 Web 應用程式的 Application 物件,當終止這個 Web 應用程式時,也就是,所有使用者都離開了這個贈用程式,代表該 Web 應用程式的 Application 物件就自然消滅。
Session 物件 • 在 ASP 中,我們用 Session 物件來代表每個登入使用者的個別連線,以物件的生命期而言,每當一位新的使用者進入一個 Web 應用程式時,即產生一個新的 Session 物件來對應該使用者。通常每個 Session 物件預設的有效執行時間為 20 分鐘,若某使用者在 20分鐘內不曾再度向伺服器要求瀏覽網頁時, 此連線將視為中斷,代表此連線的 Session 也就消滅。
Response 物件 • Response 是 ASP 的主要物件之一,它在 ASP 網頁中最常被應用的方法就是 Response.Write "字串",也就是將字串內容依 HTML 語法解譯並輸出,除了輸出字串常數外,Response.Write 也可輸出變數內容或函數執行的結果。
Request物件 • Request 物件有五個子物件 : QueryString :若用戶端的表單是以 Get 方式傳送,可藉由 Request.QueryString(“欄位名稱”) 讀取表單的欄位內容值。 Form :若用戶端的表單是以 Post 方式傳送,可藉由 Request.Form("欄位名稱") 讀取表單的欄位內容值。 ServerVariables :讀取伺服端的環境變數,如伺服器名稱, Request 的方式, ...等 。 Cookies :用來讀取用戶端的 Cookies 值。 ClientCertificate :用來讀取從瀏覽器傳來的用戶端認證資料。
資料庫連結 • 建立 Connection 物件 • 設定 Connection 物件的 ConnectionString 屬性 • 呼叫 Connection 物件的 Open 方法來開啟資料庫 • 建立 Recordset 物件 • 呼叫 Recordset 物件的 Open 方法來開啟 Recordset
建立 Connection 物件 • path_filename = Server.MapPath("North.mdb") • Set cnnDB = Server.CreateObject("ADODB.Connection") 先將資料庫的路徑和名稱存入 path_filename 變數中,再利用 Server 的 CreateObject 方法建立 Connection 物件, 其中 cnnDB 是我們給 Connection 物件所設定的變數名稱。
設定 Connection 物件的 ConnectionString 屬性 • Provider = "Provider = Microsoft.Jet.OLEDB.4.0; " • Data Source= "Data Source = " & path_filename • cnnDB.ConnectionString = Provider & DataSource
呼叫 Connection 物件的 Open 方法來開啟資料庫 • cnnDB.Open 在此,就是用 ConnectionString 屬性中所設定的資料庫提供者(Provider)來開啟資料來源(DataSource)中所設定的資料庫。
建立 Recordset 物件 • Set rs = Server.CreateObject("ADODB.Recordset") • 其中 rs是我們給 Recordset 物件所設定的物件變數名稱,所謂 Recordset 物件,一般譯為資料錄集合,也就是我們在這次任務中所用到的所有紀錄所構成的一個整體,我們必須先建立一個 Recordset 物件,才能放置紀錄到其中。
呼叫 Recordset 物件的 Open 方法來開啟 Recordset • rs.Open "產品資料", cnnDB • “產品資料”是資料庫中的一個資料表名稱,當我們用這種方式開啟 Recordset 時,就是所指定的資料表(“產品資料”)中的所有紀錄都放置到這個資料錄集合中。
有關 Connection 和 Recordset 物件的使用,有幾點要注意: 不用 Recordset 物件時, 要關閉它: 不再利用 Recordset 物件時,要清除它 : 不用 Connection 物件時,要關閉它 : 不再利用 Connection 物件時,要清除它: rs.close Set rs = nothing cnnDB.close Set cnnDB = nothing
SQL常用語法 • SELECT 欄位名 FROM 資料表名稱 • WHERE 條件 ORDER BY 欄位 SELECT 陳述式包含: SELECT-list,它會識別欄位 (屬性), FROM 子句會指定搜尋範圍 (檔案集合),而 WHERE 子句搜尋準則。 如果必須排列結果,您可以加上額外的 ORDER BY 子句,按照遞增或遞減的順序傳回每一列。
條件式 • 邏輯運算子AND 、OR、NOT • 比較運算=、<>、<、<=、>、>= • SELECT * FROM FOODS • WHERE COST > 100 • 列出 COST 高於 100 的所有記錄 • BETWEEN • SELECT * FROM FOODS <> WHERE COST > 100 and COST < 300
條件式 • 排列的順序 • ASC 由小而大 • DESC 由大而小 • 預設順序為由小而大排列 • SELECT *FROM FOODS ORDER BY COST ASC
查詢範例 • SQL字串: • select author as 姓名 from addressbook where author like '%陳%'
架構說明 • 框架頁:address_search_fram.htm • 查詢頁:address_search.htm • 蒐尋頁:search_address.asp • 資料庫名稱:data.mdb • 資料夾名稱:addressbook • 背景圖:m1.jpg
常用網站 • 藍色小舖 http://asp.database.net.tw/ • 網站建置百寶箱 http://dob.tnc.edu.tw/ • HotScripts.comhttp://www.hotscripts.com/Detailed/14468.html • 建構 ASP 網頁 http://asp.database.net.tw/teach/Help/iisHelp/iis/htm/asp/iiwauslw.htm • ASP教學 http://cai2.iem.sjsmit.edu.tw/fkaig/ASPWEB/ • http://www.coolasp.com/ASP%5FLearn/