ASP是什麼? •ASP代表Active Server Pages(動態伺服器頁面) •需在IIS中運行的程式 我自己的理解就是UI和邏輯代碼同在一個頁面中,而缺點就是不易維護。code-Behind是asp.net中的術語(代碼後置),它的出現解決了這一問題。 ASP基本語法: ASP的腳本代碼都 ...
ASP是什麼?
•ASP代表Active Server Pages(動態伺服器頁面)
•需在IIS中運行的程式
我自己的理解就是UI和邏輯代碼同在一個頁面中,而缺點就是不易維護。code-Behind是asp.net中的術語(代碼後置),它的出現解決了這一問題。
ASP基本語法:
ASP的腳本代碼都是用<% %>包裹起來的。
response.write輸出語句
1 <!DOCTYPE html> 2 <html> 3 <body> 4 <% 5 response.write("我愛你") 6 %> 7 </body> 8 </html>
也可以簡寫成<%
="我愛你"
%>
ASP主要使用兩種腳本語言,分別是VBScript和JavaScript,其中頁面預設是VB,如果需要指定,在頁面頂部插入<%@ language="JavaScript" %>來說明。
VB對於大小寫不敏感,js則敏感,需要註意。同時我自己覺得vb語法比較隨意,先學的是ASP.NET,C#的語法就較為規範一點。最起碼寫完給個;號以表示結束,ASP就不用分號結尾。
ASP變數的聲明和使用:
1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <% 6 Dim UserName 7 name="阿三" 8 response.write("你可以叫我: " & UserName) 9 %> 10 11 </body> 12 </html>View Code
聲明他用的Dim,我覺得和JQury中那個var類似。都不表示具體的類型,無類型。至於&和C#中的“+”的作用相同,拼接字元串。
ASP根據時間來判定輸出什麼內容(VB腳本--IF語句):
1 <!DOCTYPE html> 2 <html> 3 <body> 4 <% 5 dim h 6 h=hour(now()) 7 8 response.write("<p>" & now()) 9 response.write("</p>") 10 If h<12 then 11 response.write("Good Morning!") 12 else 13 response.write("Good day!") 14 end if 15 %> 16 </body> 17 </html>View Code
因為我現在沒有可測試的工具,所以有的想法只能先記錄一下。
其實我有點搞不懂為什麼要這樣單行輸出,P標記寫在一起應該沒啥問題。
if 條件 then
為True執行 某代碼塊
else
執行某代碼
end if 以它說明整個if語句結束。
ASP數組使用For迴圈遍歷取值:
1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <% 6 Dim Name(5),i 7 Name(0) = "A" 8 Name(1) = "B" 9 Name(2) = "C" 10 Name(3) = "D" 11 12 For i = 0 to 3 13 response.write(Name(i) & "<br>") 14 Next 15 %> 16 17 </body> 18 </html>View Code
看著這個to就有點懵,後來通過慄子發現,它表示從0到3,且等於3。與C#中有點差別,吶你看
For (i=0;i<4;i++)
{}
ASP子程式
當用VBScript編寫的ASP文件調用VBScript或JavaScript子程式時,可以使用call關鍵字調用,後面跟子程式名稱。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <% 5 sub vbproc(num1,num2) 6 response.write(num1*num2) 7 end sub 8 %> 9 </head> 10 <body> 11 12 <p>Result: <%call vbproc(3,4)%></p> 13 14 </body> 15 </html>View Code
如果子程式需要參數,分兩種情況:
使用call,參數必須在括弧裡面,即參數必須用括弧括起來。
不使用call,參數則不需要用括弧括起來。<%vbproc 3,4 %>;
如果子程式不需要參數參數,括弧可選,括不括看你個人愛好。
當用JavaScript編寫的ASP文件調用VBScript或JavaScript子程式時,必須在子程式後面使用括弧。
子程式就好比如JQury中的方法,funcation zcx(){},我第一次聽到這個名詞的時候有點糊。
ASP表單
request.QueryString收集的是method=“get”的表單中的值。
1 <!DOCTYPE html> 2 <html> 3 <body> 4 <form action="demo_reqquery.asp" method="get"> 5 Your name: <input type="text" name="fname" size="20" /> 6 <input type="submit" value="Submit" /> 7 </form> 8 <% 9 dim fname 10 fname=Request.QueryString("fname") 11 If fname<>"" Then 12 Response.Write("Hello " & fname & "!<br>") 13 Response.Write("How are you today?") 14 End If 15 %> 16 </body> 17 </html>View Code
該方法從表單傳出的信息對所有的用戶是可見的(如輸出的值會顯示在網頁的地址欄上),對發送的信息的數量也有限制。
request.Form收集使用method=“post”的表單中的值,信息不可見,且數量沒有限制。
1 <!DOCTYPE html> 2 <html> 3 <body> 4 <form action="demo_simpleform.asp" method="post"> 5 Your name: <input type="text" name="fname" size="20" /> 6 <input type="submit" value="Submit" /> 7 </form> 8 <% 9 dim fname 10 fname=Request.Form("fname") 11 If fname<>"" Then 12 Response.Write("Hello " & fname & "!<br>") 13 Response.Write("How are you today?") 14 End If 15 %> 16 </body> 17 </html>View Code
對於表單中取到值,用 & &包裹起來,類似於在ADO.net寫數據的增刪改中,資料庫中的每一項用“+ +”包裹起來一樣;而前面也看到了,在輸出變數時,只用&開頭,這裡有點小疑問。感覺都是包裹一個變數數據,都統一用&&包裹或&開頭行不行?