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