动态网页设计(ASP)期末复习总结01
1 ASP 語法基本規(guī)則
1.1 Response.write命令
response.write 命令用來向?yàn)g覽器寫輸出。
改代碼用來向?yàn)g覽器傳送一段文本Hello World
1.2 在ASP中使用JavaScript
需要設(shè)置 JavaScript 為某個(gè)特定頁面的默認(rèn)腳本語言,您必須在頁面的頂部插入一行語言說明:
<%@ language="javascript"%>注意!:與 VBScript 不同,JavaScript 對大小寫敏感!你必須根據(jù) JavaScript 的需要使用不同的大小寫字母編寫您的 ASP 代碼。
將 <%@ language=“l(fā)anguage” %> 這一行寫在 標(biāo)簽的上面,就可以使用另一種腳本語言來編寫子程序或者函數(shù),默認(rèn)為VBscript
2 ASP變量
參考JavaScript定義變量的方式
案例:使用 JavaScript 制作基于時(shí)間的問候語
案例:使用 VBScript 制作基于時(shí)間的問候語
<%@ 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 的不同
當(dāng)從一個(gè)用 VBScript 編寫的 ASP 文件中調(diào)用 VBScript 或者 JavaScript 子程序時(shí),可以使用 “call” 關(guān)鍵詞,后面跟著子程序名稱。假如子程序需要參數(shù),當(dāng)使用 “call” 關(guān)鍵詞時(shí),參數(shù)必須包含在括號內(nèi)。假如您省略了 “call” 關(guān)鍵詞,則參數(shù)不必包含在括號內(nèi)。如果子程序沒有參數(shù),那么括號則是可選的。
當(dāng)從一個(gè)用 JavaScript 編寫的 ASP 文件中調(diào)用 VBScript 或者 JavaScript 子程序時(shí),必須在子程序名后使用括號。
4 表單和用戶輸入
4.1 表單實(shí)例
<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 取回?cái)?shù)據(jù)
4.3.1 Request.QueryString
Request.QueryString 命令用于收集使用 method=“get” 的表單中的值。
使用 GET 方法從表單傳送的信息對所有的用戶都是可見的(出現(xiàn)在瀏覽器的地址欄),并且對所發(fā)送信息的量也有限制。
<%response.write(request.querystring("fname"))response.write(" " & request.querystring("lname")) %>4.3.2 Request.Form
Request.Form 命令用于收集使用 method=“post” 的表單中的值。
使用 POST 方法從表單傳送的信息對用戶是不可見的,并且對所發(fā)送信息的量沒有限制。
<%response.write(request.form("fname"))response.write(" " & request.form("lname")) %>5 ASP Cookies
5.1 Cookie 是什么?
cookie 常用用于識別用戶。cookie 是一種服務(wù)器留在用戶計(jì)算機(jī)上的小文件。每當(dāng)同一臺計(jì)算機(jī)通過瀏覽器請求頁面時(shí),這臺計(jì)算機(jī)將會發(fā)送 cookie。通過 ASP,您能夠創(chuàng)建并取回 cookie 的值。
5.2 如何創(chuàng)建 Cookie
“Response.Cookies” 命令用于創(chuàng)建 cookie。
注釋:Response.Cookies 命令必須出現(xiàn)在 標(biāo)簽之前。
<%Response.Cookies("firstname")="Alex" %>向 cookie 分配屬性也是可以的,比如設(shè)置 cookie 的失效時(shí)間:
<%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
如果一個(gè) cookie 包含多個(gè)值的集合,我們就可以說 cookie 帶有鍵(Keys)
創(chuàng)建一個(gè)名為 “user” 的 cookie 集合。“user” cookie 帶有包含用戶信息的鍵:
5.5 讀取所有的 Cookie
假設(shè)您的服務(wù)器將上面所有的 cookie 傳給了某個(gè)用戶。
現(xiàn)在,我們需要讀取這些傳給某個(gè)用戶的所有的 cookie
首先創(chuàng)建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 添加參數(shù)
然后通過Request.querystring取值
5.6.2 使用表單
可以使用表單。當(dāng)用戶點(diǎn)擊 Submit 按鈕時(shí),表單會把用戶輸入傳給下一個(gè)文件
6 ASP Session 對象
6.1 Session 對象
當(dāng)您在計(jì)算機(jī)上操作某個(gè)應(yīng)用程序時(shí),您打開它,做些更改,然后關(guān)閉它。這很像一次對話(Session)。計(jì)算機(jī)知道您是誰。它清楚您在何時(shí)打開和關(guān)閉應(yīng)用程序。然而,在因特網(wǎng)上問題出現(xiàn)了:由于 HTTP 地址無法保持狀態(tài),Web 服務(wù)器并不知道您是誰以及您做了什么。
ASP 通過為每個(gè)用戶創(chuàng)建一個(gè)唯一的 cookie 來解決這個(gè)問題。cookie 被傳送至用戶的計(jì)算機(jī)上,它含有可識別用戶的信息。這種接口被稱作 Session 對象。
Session 對象用于存儲關(guān)于用戶會話(session)的信息,或者更改用戶會話(session)的設(shè)置。
存儲于 Session 對象中的變量存儲單一用戶的信息,并且對于應(yīng)用程序中的所有頁面都是可用的。存儲于 session 變量中的公共信息通常是 name、id 和參數(shù)。服務(wù)器會為每個(gè)新的用戶創(chuàng)建一個(gè)新的 Session,并在 session 失效時(shí)撤銷掉這個(gè) Session 對象。
6.2 Session 何時(shí)開始
Session 開始于:
某個(gè)新用戶請求了一個(gè) ASP 文件,并且 Global.asa 文件引用了 Session_OnStart 子程序
某個(gè)值存儲在 Session 變量中
某個(gè)用戶請求了一個(gè) ASP 文件,并且 Global.asa 使用 標(biāo)簽通過 session 的 scope 來實(shí)例化某個(gè)對象
6.3 Session 何時(shí)結(jié)束
如果用戶沒有在規(guī)定的時(shí)間內(nèi)在應(yīng)用程序中請求或者刷新頁面,session 就會結(jié)束。默認(rèn)值為 20 分鐘。
如果您想要將超時(shí)的時(shí)間間隔設(shè)置為比默認(rèn)值更短或更長,可以使用 Timeout 屬性。
設(shè)置了一個(gè) 5 分鐘的超時(shí)時(shí)間間隔 <%Session.Timeout=5 %> 要立即結(jié)束 session,請使用 Abandon 方法 <%Session.Abandon %>注釋:使用 session 時(shí)主要的問題是它們該在何時(shí)結(jié)束。我們不會知道用戶最近的請求是否是最后的請求。因此我們不清楚該讓 session "存活"多久。為某個(gè)空閑的 session 等待太久會耗盡服務(wù)器的資源。然而如果 session 被過早地刪除,用戶就不得不一遍又一遍地重新開始,這是因?yàn)榉?wù)器已經(jīng)刪除了所有的信息。尋找合適的超時(shí)間隔時(shí)間是很困難的!
Tip提示:在 session 變量中僅存儲少量的數(shù)據(jù)!
6.4 存儲和取回 Session 變量
Session 對象最大的優(yōu)點(diǎn)是可在其中存儲變量,以供后續(xù)的網(wǎng)頁讀取,其應(yīng)用范圍是很廣的。
下面的實(shí)例把 “Donald Duck” 賦值給名為 username 的 Session 變量,并把 “50” 賦值給名為 age 的 Session 變量
<%Session("username")="Donald Duck"Session("age")=50 %>當(dāng)值被存儲在 session 變量中,它就能被 ASP 應(yīng)用程序中的任何頁面使用:
Welcome <%Response.Write(Session("username"))%>上面這行代碼返回的結(jié)果是: “Welcome Donald Duck”。
您也可以在 Session 對象中存儲用戶參數(shù),然后通過訪問這些參數(shù)來決定向用戶返回什么頁面。
下面的實(shí)例規(guī)定,假如用戶使用低顯示器分辨率,則返回純文本版本的頁面:
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 集合中的項(xiàng)目數(shù)量,您可以使用 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 對象
在一起協(xié)同工作以完成某項(xiàng)任務(wù)的一組 ASP 文件稱為一個(gè)應(yīng)用程序。
7.1 Application 對象
Web 上的一個(gè)應(yīng)用程序可以是一組 ASP 文件。這些 ASP 文件一起協(xié)同工作來完成某項(xiàng)任務(wù)。ASP 中的 Application 對象用于把這些文件捆綁在一起。
Application 對象用于存儲和訪問來自任何頁面的變量,類似于 Session 對象。不同之處在于,所有的用戶分享一個(gè) Application 對象,而 Session 對象和用戶的關(guān)系是一一對應(yīng)的。
Application 對象存有會被應(yīng)用程序中的許多頁面使用的信息(比如數(shù)據(jù)庫連接信息)。可以從任何的頁面訪問這些信息。同時(shí)您也可以在一個(gè)地方改變這些信息,隨后這些改變會自動反映在所有的頁面上。
7.2 存儲和取回 Application 變量
Application 變量可被應(yīng)用程序中的任何頁面訪問和改變。
您可以在 “Global.asa” 中創(chuàng)建 Application 變量,如下所示:
<script language="vbscript" runat="server">Sub Application_OnStartapplication("vartime")=""application("users")=1End Sub</script>在上面的實(shí)例中,我們創(chuàng)建了兩個(gè) 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 集合中的項(xiàng)目數(shù)量,您可以使用 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” 方法來鎖定應(yīng)用程序。當(dāng)應(yīng)用程序鎖定后,用戶們就無法改變 Application 變量了(除了正在訪問 Application 變量的用戶)。您還可以使用 “Unlock” 方法來解鎖應(yīng)用程序。這個(gè)方法會移除對 Application 變量的鎖定。
8 ASP 引用文件
8.1 #include 指令
通過使用 #include 指令,您可以在服務(wù)器執(zhí)行 ASP 文件之前,把另一個(gè) ASP 文件的內(nèi)容插入到這個(gè) ASP 文件中。
#include 指令用于創(chuàng)建函數(shù)、頁眉、頁腳或者其他多個(gè)頁面上需要重復(fù)使用的元素等。
8.2 引用文件的語法
如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標(biāo)簽中:
<!--#include virtual="somefilename"-->or<!--#include file ="somefilename"-->9 ASP Global.asa 文件
9.1 Global.asa 文件
Global.asa 文件是一個(gè)可選的文件,它可包含被 ASP 應(yīng)用程序中每個(gè)頁面訪問的對象、變量和方法的聲明。
所有合法的瀏覽器腳本(JavaScript、VBScript、JScript、PerlScript 等等)都能在 Global.asa 中使用。
Global.asa 文件只能包含下列內(nèi)容:
Application 事件
Session 事件
聲明
TypeLibrary 聲明
#include 指令
9.2 Global.asa 中的事件
在 Global.asa 中,您可以告訴 application 和 session 對象當(dāng) application/session 開始時(shí)做什么,當(dāng) application/session 結(jié)束時(shí)做什么。完成這項(xiàng)任務(wù)的代碼被放置在事件句柄中。Global.asa 文件能包含四種類型的事件:
Application_OnStart - 此事件會在第一個(gè)用戶調(diào)用 ASP 應(yīng)用程序的第一個(gè)頁面時(shí)發(fā)生。此事件會在 Web 服務(wù)器重啟或者 Global.asa 文件被編輯之后發(fā)生。“Session_OnStart” 事件會在此事件發(fā)生之后立即發(fā)生。
Session_OnStart - 此事件會在每當(dāng)新用戶請求他(她)在 ASP 應(yīng)用程序中的第一個(gè)頁面時(shí)發(fā)生。
Session_OnEnd - 此事件會在每當(dāng)用戶結(jié)束 session 時(shí)發(fā)生。在規(guī)定的時(shí)間(默認(rèn)的時(shí)間為 20 分鐘)內(nèi)如果用戶沒有請求任何頁面,用戶 session 就會結(jié)束。
Application_OnEnd - 此事件會在最后一個(gè)用戶結(jié)束其 session 之后發(fā)生。典型的情況是,此事件會在 Web 服務(wù)器停止時(shí)發(fā)生。這個(gè)子程序用于在應(yīng)用程序停止后清除設(shè)置,比如刪除記錄或者向文本文件中寫入信息。
一個(gè) 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 聲明
可通過使用 標(biāo)簽在 Global.asa 文件中創(chuàng)建帶有 session 或者 application 作用域的對象。
注釋: 標(biāo)簽應(yīng)位于
語法
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>.... </object>總結(jié)
以上是生活随笔為你收集整理的动态网页设计(ASP)期末复习总结01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人足球仿真第一次作业
- 下一篇: 家用无线路由做MAC绑定防止卡王***