
|
再談ASP伺服端與客戶端的概念 ASP是Active Server Page的縮寫,它不是一種程式語言,而是一種在伺服器內動態產生客戶端網頁的方式。 對於傳統的靜態網頁來說,客戶看到的內容與存放伺服器的網頁內容完全相同,就是一般的 *.htm或 *.html檔案。 ASP網頁不同之處是當客戶點選某個ASP網頁時,傳遞給客戶的網頁會先執行ASP檔案內部(或外部)的程式,產生完全為HTML格式的網頁內容傳回給客戶,因此: 1.可以依據客戶需求執行程式產生不同內容的網頁,如搜尋引擎。 2.伺服端的ASP檔案內包含程式碼(可能是VB,C# 或 JS),這部份不會傳到客戶端,程式技術因此可以隱藏。 3.原始檔內容也可能會被程式修改而和伺服端所顯示的不同。(譬如之前登入單元的關閉後們動作) |
|
ASP的內建物件: Request: 客戶傳送到伺服器的『要求』的相關資訊,如傳遞的網頁或其他參數等等。 Response: 伺服端回應的相關資訊與動作 (例:Response.write) Server: 伺服器的相關屬性(如網址、IP、網站實體路徑等)與操作(例:Server.Transfer) Application: 可存放網站的整體資訊,共用變數,如訪客人數等等。 Session: 工作階段的資訊,提供單一使用者在各網頁間傳遞資訊(變數)之用。 |
|
ASP的 Hello World 典型的ASP程式碼是在HTML文件內以<%程式 %>標籤插入,預設是使用VBScript,對我們來說,將它當作VB就差不多了。 開啟一個ASPX檔案,在此可以不要選擇將程式碼置於獨立檔案,我們要示範在原始檔內寫程式,程式碼如下: ![]() 如果將程式碼搬到<body>結果也一樣,客戶端的顯示(含原始碼)如下: ![]() 在客戶端看不到<% %>的部份,但是Respone.Write出來的結果變成網頁內容<body>的一部分。 在設計頁面加一個HTML的文字盒(Text1),加入 runat="server" ![]() 這個程式證明:只要加入 runat ="server"這個參數(還有id),文字盒就可以被ASP程式使用了! 練習:顯示時間→Now.... |
|
Code-Behind 程式碼後置 將程式寫在原始碼內事實上是最早的ASP程式寫作模式,目前比較好的方式,也是我們之前一直使用的,是將程式碼與原始檔(HTML)分離為兩個檔案寫作,這種方式稱為Code-Behind,但不論是哪種情況,程式碼都不會流出到客戶端。 |
|
HTML表單與ASP的通訊範例 上一單元我們簡單說到HTML中可以建立選項,或文字框的輸入,但沒說怎麼傳給伺服器。以下是一個簡單的客戶資料與伺服器互動範例。 1.開啟一個ASP專案,執行首頁複製其網址。 2.加入一張HTML網頁,在設計頁面上佈置一個文字框和一個『送出』按鍵( Input (submit)) 3.修改原始檔如下:就是替物件加上<form>表單標籤,其中action屬性將前面複製的網址貼上 ![]() 上述程式碼的意思是:名字寫入Text1→按下Submit1會將表單內所有具有 name 屬性的東西傳回伺服器。 4.修改Default.aspx原始碼如下: ![]() 其中 Request.QueryString("name")取得回傳表單中『name』這個變數的值(Value) Response.write則將回應寫到表單傳回客戶端。 依此架構擴充很容易可以完成一個個人資料表單填寫:性別年齡地址興趣等等,簡單的ASP回應可以是一張確認單。 |
|
|