动态网页设计(ASP)期末复习总结01
1 ASP 語法基本規則
1.1 Response.write命令
response.write 命令用來向瀏覽器寫輸出。
改代碼用來向瀏覽器傳送一段文本Hello World
1.2 在ASP中使用JavaScript
需要設置 JavaScript 為某個特定頁面的默認腳本語言,您必須在頁面的頂部插入一行語言說明:
<%@ language="javascript"%>注意!:與 VBScript 不同,JavaScript 對大小寫敏感!你必須根據 JavaScript 的需要使用不同的大小寫字母編寫您的 ASP 代碼。
將 <%@ language=“language” %> 這一行寫在 標簽的上面,就可以使用另一種腳本語言來編寫子程序或者函數,默認為VBscript
2 ASP變量
參考JavaScript定義變量的方式
案例:使用 JavaScript 制作基于時間的問候語
案例:使用 VBScript 制作基于時間的問候語
<%@ language="javascript"%> <html><head><meta charset="utf-8"><title></title></head><body><%var d = new Date();var h = d.getHours();Response.Write("<p>");Response.Write(d);Response.Write("</p>");if(h < 12) {Response.Write("Good Morning!");} else {Response.Write("Good Day!");}%></body> </html>3 子程序
<html><head><meta charset="utf-8"><title></title><%sub vbproc(num1,num2)Response.wirte(num1*num2)end sub%></head><body>Result:<%call vbproc(10,12)%></body> </html> <%@ language="javascript"%> <html><head><meta charset="utf-8"><title>asp文件</title><%function jspro(num1,num2) {Response.Write(num1 * num2);}%></head><body>Result:<%jspro(10,12);%></body> </html>VBScript 與 JavaScript 的不同
當從一個用 VBScript 編寫的 ASP 文件中調用 VBScript 或者 JavaScript 子程序時,可以使用 “call” 關鍵詞,后面跟著子程序名稱。假如子程序需要參數,當使用 “call” 關鍵詞時,參數必須包含在括號內。假如您省略了 “call” 關鍵詞,則參數不必包含在括號內。如果子程序沒有參數,那么括號則是可選的。
當從一個用 JavaScript 編寫的 ASP 文件中調用 VBScript 或者 JavaScript 子程序時,必須在子程序名后使用括號。
4 表單和用戶輸入
4.1 表單實例
<form method="get" action="1-5.asp">First Name: <input type="text" name="fname"><br>Last Name: <input type="text" name="lname"><br><br><input type="submit" value="Submit"></form>4.2 用戶輸入
Request 對象可用于從表單取回用戶信息。
<body>First Name:<%=Request.QueryString("fname")%><br>Last Name:<%=Request.QueryString("lname")%> </body>4.3 取回數據
4.3.1 Request.QueryString
Request.QueryString 命令用于收集使用 method=“get” 的表單中的值。
使用 GET 方法從表單傳送的信息對所有的用戶都是可見的(出現在瀏覽器的地址欄),并且對所發送信息的量也有限制。
<%response.write(request.querystring("fname"))response.write(" " & request.querystring("lname")) %>4.3.2 Request.Form
Request.Form 命令用于收集使用 method=“post” 的表單中的值。
使用 POST 方法從表單傳送的信息對用戶是不可見的,并且對所發送信息的量沒有限制。
<%response.write(request.form("fname"))response.write(" " & request.form("lname")) %>5 ASP Cookies
5.1 Cookie 是什么?
cookie 常用用于識別用戶。cookie 是一種服務器留在用戶計算機上的小文件。每當同一臺計算機通過瀏覽器請求頁面時,這臺計算機將會發送 cookie。通過 ASP,您能夠創建并取回 cookie 的值。
5.2 如何創建 Cookie
“Response.Cookies” 命令用于創建 cookie。
注釋:Response.Cookies 命令必須出現在 標簽之前。
<%Response.Cookies("firstname")="Alex" %>向 cookie 分配屬性也是可以的,比如設置 cookie 的失效時間:
<%Response.Cookies("firstname")="Alex"Response.Cookies("firstname").Expires=#May 10,2012# %>5.3 如何取回Cookie
“Request.Cookies” 命令用于取回 cookie 的值。
<%fname=Request.Cookies("firstname")response.write("Firstname=" & fname) %>5.4 帶有鍵的 Cookie
如果一個 cookie 包含多個值的集合,我們就可以說 cookie 帶有鍵(Keys)
創建一個名為 “user” 的 cookie 集合。“user” cookie 帶有包含用戶信息的鍵:
5.5 讀取所有的 Cookie
假設您的服務器將上面所有的 cookie 傳給了某個用戶。
現在,我們需要讀取這些傳給某個用戶的所有的 cookie
首先創建Cookies
下面的代碼通過 HasKeys 屬性檢查 cookie 是否帶有鍵
<%dim x,yfor each x in Request.Cookiesif Request.Cookies(x).HasKeys thenfor each y in Request.Cookies(x)Response.Write(x & y & Request.Cookies(x)(y))Response.Write("<br>")nextelseResponse.Write(Request.Cookies(x))Response.Write("<br>")end ifnext%>5.6 如果瀏覽器不支持 Cookie 該怎么辦?
5.6.1 向 URL 添加參數
然后通過Request.querystring取值
5.6.2 使用表單
可以使用表單。當用戶點擊 Submit 按鈕時,表單會把用戶輸入傳給下一個文件
6 ASP Session 對象
6.1 Session 對象
當您在計算機上操作某個應用程序時,您打開它,做些更改,然后關閉它。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。然而,在因特網上問題出現了:由于 HTTP 地址無法保持狀態,Web 服務器并不知道您是誰以及您做了什么。
ASP 通過為每個用戶創建一個唯一的 cookie 來解決這個問題。cookie 被傳送至用戶的計算機上,它含有可識別用戶的信息。這種接口被稱作 Session 對象。
Session 對象用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。
存儲于 Session 對象中的變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。存儲于 session 變量中的公共信息通常是 name、id 和參數。服務器會為每個新的用戶創建一個新的 Session,并在 session 失效時撤銷掉這個 Session 對象。
6.2 Session 何時開始
Session 開始于:
某個新用戶請求了一個 ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序
某個值存儲在 Session 變量中
某個用戶請求了一個 ASP 文件,并且 Global.asa 使用 標簽通過 session 的 scope 來實例化某個對象
6.3 Session 何時結束
如果用戶沒有在規定的時間內在應用程序中請求或者刷新頁面,session 就會結束。默認值為 20 分鐘。
如果您想要將超時的時間間隔設置為比默認值更短或更長,可以使用 Timeout 屬性。
設置了一個 5 分鐘的超時時間間隔 <%Session.Timeout=5 %> 要立即結束 session,請使用 Abandon 方法 <%Session.Abandon %>注釋:使用 session 時主要的問題是它們該在何時結束。我們不會知道用戶最近的請求是否是最后的請求。因此我們不清楚該讓 session "存活"多久。為某個空閑的 session 等待太久會耗盡服務器的資源。然而如果 session 被過早地刪除,用戶就不得不一遍又一遍地重新開始,這是因為服務器已經刪除了所有的信息。尋找合適的超時間隔時間是很困難的!
Tip提示:在 session 變量中僅存儲少量的數據!
6.4 存儲和取回 Session 變量
Session 對象最大的優點是可在其中存儲變量,以供后續的網頁讀取,其應用范圍是很廣的。
下面的實例把 “Donald Duck” 賦值給名為 username 的 Session 變量,并把 “50” 賦值給名為 age 的 Session 變量
<%Session("username")="Donald Duck"Session("age")=50 %>當值被存儲在 session 變量中,它就能被 ASP 應用程序中的任何頁面使用:
Welcome <%Response.Write(Session("username"))%>上面這行代碼返回的結果是: “Welcome Donald Duck”。
您也可以在 Session 對象中存儲用戶參數,然后通過訪問這些參數來決定向用戶返回什么頁面。
下面的實例規定,假如用戶使用低顯示器分辨率,則返回純文本版本的頁面:
6.5 移除 Session 變量
Contents 集合包含所有的 session 變量。
可通過 Remove 方法來移除 session 變量。
<% If Session.Contents("age")<18 thenSession.Contents.Remove("sale") End If %>如需移除 session 中的所有變量,請使用 RemoveAll 方法:
<%Session.Contents.RemoveAll() %>6.6 遍歷Contents集合
Contents 集合包含所有的 session 變量。您可以通過遍歷 Contents 集合,來查看其中存儲的變量:
<%Session("username")="Donald Duck"Session("age")=50dim iFor Each i in Session.ContentsResponse.Write(i & "<br>")Next %>如果您不知道 Contents 集合中的項目數量,您可以使用 Count 屬性:
<%dim idim jj=Session.Contents.CountResponse.Write("Session variables: " & j)For i=1 to jResponse.Write(Session.Contents(i) & "<br>")Next %>6.7 遍歷 StaticObjects 集合
您可以通過遍歷 StaticObjects 集合,來查看存儲在 Session 對象中的所有對象的值:
<%dim iFor Each i in Session.StaticObjectsResponse.Write(i & "<br>")Next %>7 ASP Application 對象
在一起協同工作以完成某項任務的一組 ASP 文件稱為一個應用程序。
7.1 Application 對象
Web 上的一個應用程序可以是一組 ASP 文件。這些 ASP 文件一起協同工作來完成某項任務。ASP 中的 Application 對象用于把這些文件捆綁在一起。
Application 對象用于存儲和訪問來自任何頁面的變量,類似于 Session 對象。不同之處在于,所有的用戶分享一個 Application 對象,而 Session 對象和用戶的關系是一一對應的。
Application 對象存有會被應用程序中的許多頁面使用的信息(比如數據庫連接信息)。可以從任何的頁面訪問這些信息。同時您也可以在一個地方改變這些信息,隨后這些改變會自動反映在所有的頁面上。
7.2 存儲和取回 Application 變量
Application 變量可被應用程序中的任何頁面訪問和改變。
您可以在 “Global.asa” 中創建 Application 變量,如下所示:
<script language="vbscript" runat="server">Sub Application_OnStartapplication("vartime")=""application("users")=1End Sub</script>在上面的實例中,我們創建了兩個 Application 變量:“vartime” 和 “users”。
您可以訪問 Application 變量的值,如下所示:
There are <%Response.Write(Application("users")) %> active connections.7.3 遍歷 Contents 集合
Contents 集合包含著所有的 application 變量。您可以通過遍歷 Contents 集合,來查看其中存儲的變量:
<%dim iFor Each i in Application.ContentsResponse.Write(i & "<br>")Next %>如果您不知道 Contents 集合中的項目數量,您可以使用 Count 屬性:
<%dim idim jj=Application.Contents.CountFor i=1 to jResponse.Write(Application.Contents(i) & "<br>")Next %>7.4 遍歷 StaticObjects 集合
您可以通過遍歷 StaticObjects 集合,來查看存儲在 Application 對象中的所有對象的值:
<%
dim i
For Each i in Application.StaticObjects
Response.Write(i & “
”)
Next
%>
7.5 鎖定和解鎖
您可以使用 “Lock” 方法來鎖定應用程序。當應用程序鎖定后,用戶們就無法改變 Application 變量了(除了正在訪問 Application 變量的用戶)。您還可以使用 “Unlock” 方法來解鎖應用程序。這個方法會移除對 Application 變量的鎖定。
8 ASP 引用文件
8.1 #include 指令
通過使用 #include 指令,您可以在服務器執行 ASP 文件之前,把另一個 ASP 文件的內容插入到這個 ASP 文件中。
#include 指令用于創建函數、頁眉、頁腳或者其他多個頁面上需要重復使用的元素等。
8.2 引用文件的語法
如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標簽中:
<!--#include virtual="somefilename"-->or<!--#include file ="somefilename"-->9 ASP Global.asa 文件
9.1 Global.asa 文件
Global.asa 文件是一個可選的文件,它可包含被 ASP 應用程序中每個頁面訪問的對象、變量和方法的聲明。
所有合法的瀏覽器腳本(JavaScript、VBScript、JScript、PerlScript 等等)都能在 Global.asa 中使用。
Global.asa 文件只能包含下列內容:
Application 事件
Session 事件
聲明
TypeLibrary 聲明
#include 指令
9.2 Global.asa 中的事件
在 Global.asa 中,您可以告訴 application 和 session 對象當 application/session 開始時做什么,當 application/session 結束時做什么。完成這項任務的代碼被放置在事件句柄中。Global.asa 文件能包含四種類型的事件:
Application_OnStart - 此事件會在第一個用戶調用 ASP 應用程序的第一個頁面時發生。此事件會在 Web 服務器重啟或者 Global.asa 文件被編輯之后發生。“Session_OnStart” 事件會在此事件發生之后立即發生。
Session_OnStart - 此事件會在每當新用戶請求他(她)在 ASP 應用程序中的第一個頁面時發生。
Session_OnEnd - 此事件會在每當用戶結束 session 時發生。在規定的時間(默認的時間為 20 分鐘)內如果用戶沒有請求任何頁面,用戶 session 就會結束。
Application_OnEnd - 此事件會在最后一個用戶結束其 session 之后發生。典型的情況是,此事件會在 Web 服務器停止時發生。這個子程序用于在應用程序停止后清除設置,比如刪除記錄或者向文本文件中寫入信息。
一個 Global.asa 文件可能如下所示:
<script language="vbscript" runat="server">sub Application_OnStart'some codeend subsub Application_OnEnd'some codeend subsub Session_OnStart'some codeend subsub Session_OnEnd'some codeend sub</script>注釋:由于我們無法在 Global.asa 文件中使用 ASP 的腳本分隔符 (<% 和 %>) 插入腳本,我們需要把子例程放置在 HTML 的
9.3 聲明
可通過使用 標簽在 Global.asa 文件中創建帶有 session 或者 application 作用域的對象。
注釋: 標簽應位于
語法
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>.... </object>總結
以上是生活随笔為你收集整理的动态网页设计(ASP)期末复习总结01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人足球仿真第一次作业
- 下一篇: 家用无线路由做MAC绑定防止卡王***