asp內置對象解析課件_第1頁
asp內置對象解析課件_第2頁
asp內置對象解析課件_第3頁
asp內置對象解析課件_第4頁
asp內置對象解析課件_第5頁
已閱讀5頁,還剩181頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Asp內置對象ASP的特點是面向對象編程,它提供了功能強大的內部對象。其中常用的對象有:RequestResponseSessionApplicationServer

Asp內置對象ASP的特點是面向對象編程,它提供了功能強大的Request對象

Request對象有5種方法可用來獲取客戶端的信息(由客戶端發出的HTTP請求報文)獲取方法功能Form取得客戶端以post方式提交的表單信息QueryString取得客戶端以get方式提交的表單信息或URL后攜帶的信息ServerVariables取得服務器端或客戶端的環境變量信息Cookies取得客戶端瀏覽器的Cookies信息ClientCertificate取得客戶端瀏覽器的身份驗證信息Request對象Request對象有5種方法可用來獲取客Request對象(2)Request.獲取方法(變量名或字符串)其中的參數就是要得到的信息的變量名稱。如果不想加入獲取方法,也可以簡寫為Request(參數)方式,ASP同樣可以幫你取得客戶端的信息。因為沒有指定獲取方法,所以ASP將會依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate這5種獲取方法中檢查是否有信息傳入,如果有則會返回獲得的變量信息。

(1)這里的“獲取方法”更準確的說應該是“數據集合”,因為獲取到的信息其實都在一個集合中。在這里之所以說是“獲取方法”主要是強調從客戶端獲得信息這個功能。數據集合FormQuerystringClientCertificateCookiesServerVariablesRequestRequest對象(2)Request.獲取方法(變量名或Form方法獲取post方式提交的表單信息語法格式:Request.form(“表單元素名稱”)

例:(4-1.asp4-2.asp)Form方法獲取post方式提交的表單信息語法格式:RequForm方法獲取post方式提交的表單信息……<body><formname="test"method="post"action="4-2.asp">……</form></body>……注意:1.checkbox或radio命名為相同時,表示為同一組Form方法獲取post方式提交的表單信息……注意:Form方法獲取post方式提交的表單信息……<%Dimuser_name,user_password,sex,hobby,career,describe user_name=Request.Form("user_name") user_password=Request.Form("user_password") sex=Request.Form("sex") career=Request.Form("career") hobby=Request.Form("hobby") describe=Request.Form("describe")…… %>……Form方法獲取post方式提交的表單信息……Form方法獲取post方式提交的表單信息注意:1.checkbox或radio命名為相同時,表示為同一組2.獲取多項選擇表單元素值的方法:方法一:Request.Form(“表單元素名”)--多個值之間自動以逗號隔開方法二:num=request.form("hobby").count'記下選擇了多少項fori=1tonum'寫出選擇的每一項Response.Writerequest.form("hobby")(i)nextForm方法獲取post方式提交的表單信息注意:Form方法獲取post方式提交的表單信息2.獲取多項選擇表單元素值的方法:方法三:foreachiteminrequest.form("hobby") Response.Writeitem&"/"'寫出選擇的每一項nextForm方法獲取post方式提交的表單信息2.獲取多項選擇表Form方法獲取post方式提交的表單信息服務端獲取表單元素值和客戶端獲取表單元素值的方法不同Form方法獲取post方式提交的表單信息服務端獲取表單元素Form方法獲取post方式提交的表單信息注意點:(1)4-1.asp那是一個簡單的HTML文件,并沒有使用ASP語句,完全可以將名字改為4-1.htm。注意:Form對象和其元素屬性的設置。如action、method、type等。(2)在4-2.asp中定義了幾個變量,變量名字和表單中的元素名字可以相同,也可以不同。主要是為了程序易讀,可以不一樣。

(3)4-1.asp文檔中的form表單和4-2.asp中Request.Form中的form方法有什么區別?前者是html文檔或ASP文檔提供的表單,后者是應用ASP的Request對象獲取html文檔或ASP文檔中的表單信息的方法。

Form方法獲取post方式提交的表單信息注意點:(1)4-Form方法獲取post方式提交的表單信息ASP文件內的表單信息可以傳給自身。見4-3.aspForm方法獲取post方式提交的表單信息ASP文件內的表單Form方法獲取post方式提交的表單信息注意點:(1)程序中的<%IfRequest.Form(“keywords”)<>“”Then%>這個判斷語句非常重要,如果沒有輸入查詢關鍵字,則不執行操作,只有輸入查詢信息才處理if中的語句。(3)比較一下兩種表單信息傳送方式有什么不同?表單form的action對象不同;處理表單信息的位置不同。如:當用戶打開這個網頁時,request.form(“”)得到的結果為空,所以不執行asp代碼。因為打開時網頁的form1沒有把其內容傳遞給自己。只有通過提交方式提交了才能獲得里面元素的值。Form方法獲取post方式提交的表單信息注意點:(1)程序Querystring獲取方法Querystring方法可以獲取get方式提交的表單信息,也可以獲取URL后攜帶的參數信息。

Querystring獲取方法Querystring方Querystring方法獲取get方式提交的表單信息語法格式:Request.querystring(“表單元素名稱”)

例:(4-1_1.asp4-2_2.asp)Querystring方法獲取get方式提交的表單信息語法格Querystring方法獲取get方式提交的表單信息……<body><formname="test"method=“get"action="4-2_2.asp">……</form></body>……Querystring方法獲取get方式提交的表單信息……Querystring方法獲取get方式提交的表單信息……<%Dimuser_name,user_password,sex,hobby,career,describe user_name=Request.querystring("user_name") user_password=Request.querystring("user_password") sex=Request.querystring("sex") career=Request.querystring("career") hobby=Request.querystring("hobby") describe=Request.querystring("describe")…… %>……Querystring方法獲取get方式提交的表單信息……Querystring方法獲取get方式提交的表單信息注意:1.get方式提交的表單信息是非安全方式,附加在URL地址后面url?表單元素1的name=表單元素1的value&表單元素2的name=表單元素2的valueQuerystring方法獲取get方式提交的表單信息注意:Querystring方法獲取URL攜帶參數信息<html><head> <title>QueryString用法示例</title></head><body> <p>請單擊下面的超鏈接</p>

<ahref="4-7.asp?name=白蕓&age=22">顯示</a></body></html>4-4_1.aspQuerystring方法獲取URL攜帶參數信息<htmlQuerystring方法獲取URL攜帶參數信息……<body><%Dimname,agename=Request.QueryString("name")'返回姓名age=Request.QueryString("age")'返回年齡Response.Write"您的姓名是:"&name&",您的年齡是:"&age%></body>……Querystring方法獲取URL攜帶參數信息……Querystring方法獲取URL攜帶參數信息語法:request.querystring(參數關鍵字)形式類似于Querystring方法獲取get方式提交的表單信息,只是這里的參數關鍵字是自定義的,不是表單元素名Querystring方法獲取URL攜帶參數信息語法:reQuerystring方法獲取URL攜帶參數信息URL后傳送的信息如果是變量,不是常數,該怎么表示?

Querystring方法獲取URL攜帶參數信息URL后傳Querystring方法獲取URL攜帶參數信息<body><p>請單擊下面的超鏈接</p><% dimname,age name="白蕓" age=22 %><ahref="4-7.asp?name=<%=name%>&age=<%=age%>">顯示</a></body>4-4-2.aspQuerystring方法獲取URL攜帶參數信息<bodyQuerystring方法獲取URL攜帶參數信息注意:URL后攜帶的都是字符串信息,不用加引號Querystring方法獲取URL攜帶參數信息注意:Querystring方法獲取URL攜帶參數信息應用:圖片展4-6-1.asp和4-6-2.asp類似的還有新聞系統,論壇帖子Querystring方法獲取URL攜帶參數信息應用:類似ServerVariables獲取方法有時候希望知道服務器端或客戶端的信息,如客戶端的IP地址,這時我們可以用ServerVariables方法。課本60頁表格4-5列舉了常用的環境變量。ServerVariables的語法格式:Request.ServerVariables(“環境變量名”)ServerVariables獲取方法有時候希望知道服務器端ServerVariables獲取方法例子:4-7.asp……<body> <% DimIP IP=Request.ServerVariables("REMOTE_ADDR")

Response.Write"來訪者IP地址是:"&IP&"<br>" Dimlocal_IP local_IP=Request.ServerVariables("Local_ADDR")

Response.Write"服務器的IP地址是:"&local_IP %></body>……ServerVariables獲取方法例子:4-7.aspResponse對象Response對象可以向客戶端輸出信息,他的方法有:

方法說明write送出信息到客戶端redirect引導用戶端的瀏覽器至新的Web頁面end終止處理ASP程序,并返回當時的狀況flush立刻送出緩沖區的Html數據clear消除緩沖區中的所有Html頁面BinaryWrite輸出二進制信息Response對象Response對象可以向客戶端輸出信息Write方法write方法是Response對象最普遍、最常用的方法,它直接把信息從服務端送到客戶端,從而實現動態內容的顯示。語法格式:Response.write字符串或變量或常量Write方法write方法是ResponsWrite方法……<%user_name=“G_Jocky” Response.Write"你的密碼是:" Response.Writeuser_name Response.Write“你的姓名是:"&user_name %>……4-8.aspWrite方法……4-8.aspWrite方法注意:(1)Response.write必須在<%%>內,不能在客戶端運行。(2)Response.write=<%=%>,如例子4-9.asp。區別:但在<%%>內可有多個Response.write操作而=只能有一個。Write方法注意:區別:Write方法Write方法還可以用來輸出HTML元素

<bodybgcolor="#FFFFFF"text="#000000"><%

response.write"<divalign='center'>比較Write方法輸出Html元素</div>"%></body><bodybgcolor="#FFFFFF"text="#000000"><divalign="center">比較Write方法輸出Html元素</div></body>4-10.aspand4-11.aspWrite方法Write方法還可以用來輸出HTML元素<bWrite方法注意:(1)HTML代碼中的雙引號要改成單引號。(2)在開發ASP程序時,如果遇到不方便進行ASP語句和HTML元素之間的切換時,可以用Write方法來輸出HTML元素。Write方法注意:Redirect方法在普通網頁中,可以利用超鏈接引導客戶至另一個頁面,但是必須要客戶單擊超鏈接才行。可是有時希望自動引導客戶至另一個頁面,比如:進行網上考試時,當考試時間到時,應自動引導客戶端至結束界面。在ASP中,可使用Redirect方法引導客戶至另一個頁面。

語法格式為:Response.redirect網址變量或網址字符串

Redirect方法在普通網頁中,可以利用超鏈接引導客Redirect方法<% IfRequest.Form("adrress")="csdn"then ‘將用戶引至程序大本營網站

Response.Redirect""

ElseIfRequest.Form("adrress")="book"then ‘將用戶引至網絡書城

Response.Redirect""

EndIf%>4-12.aspRedirect方法<% IfRequest.Form(Redirect方法注意:

(2)如果希望在ASP文件的任意地方使用Redirect語句,那就必須在ASP文件的開頭加上<%Response.Buffer=True%>這一句話。否則,Redirct語句必須放到ASP文件的開頭,如果不放到ASP文件的開頭,網頁執行會出錯:HTTP頭已經寫入到客戶瀏覽器。任何HTTP頭的修改必須在寫入頁內容之前。(1)Redirct語句中網址的寫法,可以是相對地址,也可以是絕對地址。

Redirect方法注意:(2)如果希望在ASP文件的任意Buffer屬性Buffer屬性用來設置服務器端是否將頁面輸出到緩沖區,它的值為True或False。當Buffer為True時,服務器端先輸出至緩沖區,在輸出至緩沖區時,服務器端不響應客戶端,除非所有的服務器瑞文件被處理完畢。當Buffer為False時,服務器端直接將頁面輸出至客戶端瀏覽器。

如果在ASP文件中任意地方用到Redirect方法重定向頁面,則必須在文件開頭加<%Response.Buffer=True%>這一句話,否則就會報錯。這是因為:在默認狀況下,服務器端直接將頁面輸出至客戶端,當輸出HTML元素后,又想將網頁引導到另一個頁面,這是不允許的,而令Buffer等于True后,將把頁面輸出到緩沖區,在緩沖區不存在這個問題,可以隨時將網頁引導至其他頁面。

Buffer屬性Buffer屬性用來設置服務器端End方法End方法用來終止ASP程序的執行。當ASP程序中遇到response.end語句后,則終止程序執行(包括asp程序和html代碼)。

<body> <% Response.Write"這是第一句"

Response.End

Response.Write"這是第二句" %> <p>這是第三句</body>4-13.aspEnd方法End方法用來終止ASP程序的執行。當ASPCookies的設置和讀取Cookies是服務器嵌入用戶瀏覽器中來標識用戶的一種方法。在需要時,服務器可以從瀏覽器得到Cookies以供使用。Cookies有兩種形式:一種是會話cookies,另一種是永久cookies。前者只在用戶和服務器會話期間存在于用戶的硬盤上,后者則在定義的有效期內永久地存在于用戶的硬盤上。Cookies變量可以實現網站的各頁面之間共享這些信息。ASP的Cookies是由response對象的Cookies方法來設置的,由Request對象的Cookies方法獲取。Cookies的設置和讀取Cookies是服務器嵌Cookies的設置語法格式:response.Cookies(“CookiesName”)=取值response.Cookies(“CookiesName”)(“關鍵字”)=取值response.Cookies(“CookiesName”)[(“關鍵字”)].屬性=取值CookiesName:Cookies變量名稱

關鍵字:若指定了關鍵字該Cookies則表示一個集合,它可包含幾個關鍵字,可以分別賦值

屬性:Cookies的屬性,Cookies變量本身有一些屬性,其中有些屬性是僅可寫入的,有些是只讀的??稍O置的屬性有:expires,path,Domain,SecureCookies的設置語法格式:CookiesName:CCookies的設置<%response.Cookies(“user_name”)=request.form(“user_name”)%>

舉例:<%response.Cookies(“user”)(“name”)=request.form(“user_name”)

response.Cookies(“user”)(“sex”)=request.form(“user_sex”)

response.Cookies(“user”)(“hobby”)=request.form(“user_hobby”)……%><%response.Cookies(“user”).expires=#2006-5-1#%>

Cookies的設置<%舉例:<%response.Cookies的設置注意:(1)設置Cookies時,如果該Cookies已經存在,則覆蓋原來的Cookies;如果不存在則創建一個。(2)想在ASP文件任何地方使用用response.Cookies方法設置Cookies變量,必須保證response.Buffer=true.

(3)防止不同站點設置的Cookies名一樣而發生覆蓋,則可在程序中設置cookies變量的作用域(如domain、path屬性)Cookies的設置注意:讀取Cookies語法格式:Request.Cookies(“CookiesName”)[(關鍵字)]

讀取不包含關鍵字的Cookies<%response.Cookies(“user_name”)=request.form(“user_name”)response.writerequest.Cookies(“user_name”)

%>讀取Cookies語法格式:讀取不包含關鍵字的Cookie讀取Cookies語法格式:Request.Cookies(“CookiesName”)[(關鍵字)]

讀取包含關鍵字的Cookies<%response.Cookies(“user”)(“name”)=request.form(“user_name”)response.Cookies(“user”)(“sex”)=request.form(“user_sex”)response.Cookies(“user”)(“hobby”)=request.form(“user_hobby”)response.writerequest.Cookies(“user”)(“name”)response.writerequest.Cookies(“user”)(“sex”)response.writerequest.Cookies(“user”)(“hobby”)%>讀取Cookies語法格式:讀取包含關鍵字的Cookies讀取Cookies語法格式:Request.Cookies(“CookiesName”)[(關鍵字)]

.屬性讀取Cookies變量的HasKeys屬性:<%‘讀取是否有關鍵字response.writerequest.Cookies(“user”).haskeys%>屬性:Cookies變量本身有一個只讀屬性:haskeys讀取Cookies語法格式:讀取Cookies變量的Has讀取Cookies思考:request.Cookies方法讀取一個不存在的Cookies時,會出現什么狀況?

讀取Cookies思考:Cookies的設置和讀取注意:Cookies變量的expires屬性設置影響著cookies變量的存活期,如果expires屬性為過去的一個時期,則是會話型的,如果不設置expires屬性或為以后的一個時間,則是永久性的。Cookies的設置和讀取注意:Cookies變量的expiCookies的特點1.Cookies保存在用戶的機子上,不是在服務器上,進行了簡單的加密。2.Cookies的值為最近一次上網時修改后的值不同的用戶在同一臺電腦上網時,Cookies不會辨別用戶的身份,從而暴露其他客戶的隱私。所以設置cookies一定要謹慎。cookies一般用于保存非重要的信息,供網站中文件共享。Cookies的特點1.Cookies保存在用戶的機子上,Cookies的刪除IE屬性設置中“刪除Cookies”Cookies的刪除IE屬性設置中“刪除Cookies”Session和Application對象我們在訪問一個網站的時候,經常要由一個網頁跳轉到另一個網頁,在由一個網頁跳轉到另一個網頁時,經常需要共享一些信息?;仡櫍何覀兦懊鎸W了哪些方法可以幫我們實現這一功能?Form;URL后攜帶信息;Cookies;Session和Application對象我們在訪問Session和Application對象1.利用session對象記載每個用戶各自的信息2.利用Application對象記載所有客戶共享的信息3.Global.asa的編寫

Session和Application對象1.利用sessi一、Session對象大家都有過登陸論壇、聊天室的經歷,在我們登陸后,系統需要記住我們的用戶名,呢稱等信息,以便在我們發表言論時使用。這是怎么實現的呢?我們的網絡程序設計者往往會采用Session對象。Session對象是用來記載特定用戶的信息的。這些信息在會話期間,網站的任何一個網頁都可以共享這些信息。強調一點:多客戶訪問同一網站時,不同用戶有他們自己的Session變量信息,相互之間不存在干擾和泄密的。瀏覽器瀏覽器Session對象Session對象…………服務器一、Session對象大家都有過登陸論壇、聊天室的經一、Session對象Session對象的屬性有:SessionID和TimeOutSession對象的方法有:AbandonSession對象的事件有:Session_OnStart和Session_Onend.一、Session對象Session對象的屬性有:Sessi一、Session對象1.SessionID瀏覽器Session變量及值Sess+sessionID文件服務器申請生成session返回sessionIDCookies(“ASPsession”)一、Session對象1.SessionID瀏覽器Ses一、Session對象1.SessionIDsession利用會話型cookie的身份標志功能,將用戶在瀏覽網站時需要保存的信息保存在服務器上。這樣session既克服了http協議的缺陷,又防止了信息的泄漏,而且方便了編程者的使用,是一個非常好的解決方案。

讀取sessionID值語法為:<%response.writesession.sessionID%>一、Session對象1.SessionID一、Session對象2.TimeOut屬性

TimeOut屬性為session對象的的有效期。網站中session對象的有效期默認為20分鐘。也就是說用戶在20分鐘內不刷新網頁或不向服務器發出請求,session對象會自動結束。注意:修改的值必須大于20分鐘,否則仍默認為20分鐘。讀取或修改session對象TimeOut屬性的語法為:n=session.timeout

‘讀取session.timeout=整數(分鐘)

‘修改舉例:<%session.timeout=30%>

一、Session對象2.TimeOut屬性TimeO一、Session對象2.TimeOut屬性

session對象的TimeOut屬性也可以在服務器的IIS的站點屬性中修改。一、Session對象2.TimeOut屬性sessi一、Session對象3.Abandon方法

Abandon方法用于釋放Web服務器用于保存某個用戶會話信息的存儲空間。但是,這個方法并不影響其他用戶的會話信息。如果用戶未調用Abandon方法,那么該會話信息也會在Timeout屬性設定的時間之后,由服務器自動刪除。

Abandon方法的使用語法:Session.Abandon

一、Session對象3.Abandon方法Ab一、Session對象4.建立和使用Session對象的變量

(1)建立和改變Session值的方法:

Session("變量名")=表達式(2)引用Session值的方法(可用于賦值或直接輸出):

Session(“變量名”)

一、Session對象4.建立和使用Session對象的變量一、Session對象<%Dimuser_name,ageuser_name="卓云"age=22

Session("user_name")=user_name

'給Session賦值

Session("age")=age%> 一、Session對象<%一、Session對象<%Dimuser_name

user_name=Session("user_name")

'將Session值賦給變量Response.Writeuser_name&"您好,歡迎您<br>"

Response.Write"您的年齡是"&Session("age")

'直接使用Session值%>一、Session對象<%一、Session對象<%Dimuser_name

session.Abandonuser_name=Session("user_name") Response.Writeuser_name&"您好,歡迎您<br>"Response.Write"您的年齡是"&Session("age")%>(應用session對象abandon)一、Session對象<%(應用session對象aband一、Session對象思考:

如果session對象的某個變量不存在或session對象已經被釋放,讀取session(“xxx”)=?

一、Session對象思考:二、Application對象Application和session對象剛好相反,它是用來存儲所有用戶之間的共同信息。比如聊天室里,每個人的發言都能被看到,這就是由Application對象實現的。瀏覽器瀏覽器Application對象……服務器二、Application對象Application和ses二、Application對象Application對象的生命周期為從服務器打開到關閉。Application的方法:Lock和UnlockApplication的事件:Application_OnStart和Application_OnEnd二、Application對象Application對象的二、Application對象1.建立和改變Application變量值語法:Application(“變量名”)=表達式二、Application對象1.建立和改變Applicat二、Application對象<%application.Lock()ifapplication("visitor")=""then

application("visitor")=1

else

application("visitor")=application("visitor")+1endifapplication.UnLock()%>二、Application對象<%二、Application對象<%dimallvisitorallvisitor=application("visitor")%>二、Application對象Session變量和Application變量的比較3.

練習從生命周期、作用范圍、工作原理、應用場合等方面概括Session對象和Application對象的相似之處和不同之處

Session變量和Application變量的比較3.練Session變量和Application變量的比較相同之處:對象中的變量都可以進行存取,都有生命周期和作用域;不同之處:Session對象Application對象生命周期從用戶登陸到退出該網站從服務器開啟到關閉作用范圍每個用戶有一個單獨的Session對象所有用戶公用一個Application對象工作原理每個登錄用戶都有一個相應的Sess+sessID文件存在于服務器上。Application文件存在于服務器上,只有一個。應用場合記錄單個用戶的信息,如:身份密碼、個人喜好等。記錄所有用戶的公共信息,如:主頁訪問記數器、公共討論區的信息等Session變量和Application變量的比較相同之處Session變量和cookies變量的比較Cookies變量保存在客戶端硬盤上,不同用戶可共享同一網站的cookies變量,不安全,容易泄密。有效期可以是會話型的也可以永久。Session變量的保存在服務端,不同用戶有各自的session變量,安全,不會泄密。有效期是會話型的。Session變量和cookies變量的比較Cookies變三、Global.asa文件

Global.asa文件是用來定義Session、Application對象事件所對應的程序的。當Session或Application第一次被調用或結束時,將運行該文件中對應的程序。三、Global.asa文件Global三、Global.asa文件

<Scriptlanguage=“VBScript”runat=“server”>SubApplication_OnStart‘Application對象開始程序EndSubSubApplication_OnEnd‘Application對象結束程序EndSubSubSession_OnStart‘Session對象開始程序EndSubSubSession_OnEnd‘Session對象開始程序EndSub</Script>語法三、Global.asa文件<Scriptlangua三、Global.asa文件

注意:

(1)每個應用程序,即每個網站只能有一個Global.asa文件,且必須是命名為Global.asa,且必須存放在應用程序的根目錄下。(2)語法格式必須是<Scriptlanguage=“VBScript”runat=“server”>……</Script>。(3)由于Global.asa文件只是被調用,不會顯示在頁面上,所以Global.asa文件中不能有任何輸出語句。(4)對于一個應用程序,可以有Global.asa文件,也可以沒有Global.asa文件,有Global.asa文件時,可以同時包含上述4個事件,也可以只包含其中的幾個事件。(5)編寫Global.asa文件時,可以調用文本編輯軟件,存為Global.asa即可。三、Global.asa文件注意:(1)每個應用程序,三、Global.asa文件

比較:Global.asa中設置:SubSession_OnStartApplication.LockApplication("visitor")=Application("visitor")+1Application.UnlockEndSub頁面程序中設置:<%iftrim(request.form("name"))<>""then application.Lock() ifapplication("visitor")=""then application("visitor")=1 else application("visitor")=application("visitor")+1 endif application.unLock()endif%>三、Global.asa文件比較:三、Global.asa文件比較結果:只要有用戶訪問該站點下任何一網頁則會執行該程序。相反,在頁面程序中設置該段程序則在用戶訪問該網頁三、Global.asa文件比較結果:三、Global.asa文件

比較:Global.asa中設置:SubSession_OnEndApplication.LockApplication("visitor")=Application("visitor")-1Application.UnlockEndSub頁面程序中設置:<%iftrim(request("goout"))<>""thenapplication.lockapplication("visitor")=application("visitor")-1application.unlockresponse.Write"<scriptlanguage='vbscript'>window.top.close()</script>"endif%>三、Global.asa文件比較:三、Global.asa文件比較結果:Global.asa中設置:用戶退出該站點達到session變量的timeout時限后或session.Abandon()后自動執行該程序段。頁面程序中設置:該段程序則在用戶訪問該網頁時執行,但session變量在timeout時限達到后或使用session.Abandon()后自動取消

三、Global.asa文件比較結果:Server對象學習內容:Server對象的屬性和方法,特別是:HTMLencode方法和Mappath方法。Server對象學習內容:Server對象的一、server對象的屬性和方法一、server對象的屬性和方法二、ScriptTimeOut屬性的應用和前面的session.timeout很相似,ScriptTimeOut是設置服務器執行網站中某一網頁腳本的最長時間。如果腳本程序在設定的時間值范圍內沒有執行完畢,將自動停止執行。它的默認值是90秒,程序員可以根據程序的復雜程度重新設置這個值,但不能低于90秒。如:<%Server.ScriptTimeOut=150%>二、ScriptTimeOut屬性的應用和前面的se三、CreateObject方法的應用語法格式:Set實例名=server.CreateObject(ActiveXserver組件)

server.CreateObject方法主要用于創建ActiveX組件、應用程序或腳本對象的實例。組件可以是各種形式的可執行程序(DLL、EXE等),不必考慮它的位置,只要在WindowsNT(或98)中登記注冊了這些程序,COM就會在系統注冊表(Registry)里維護這些資料,讓程序員調用。三、CreateObject方法的應用語法格式:Set實三、CreateObject方法的應用使用ActiveX服務器組件能擴展ASP的功能,實現一些僅依賴腳本語言所無法實現的功能,使得ASP具有更強大的生命力,ActiveXserver組件包括數據庫存取、文件存取等組件。作用:舉例:<%setmyconn=Server.CreateObject("ADODB.Connection")%>三、CreateObject方法的應用使用Activ三、CreateObject方法的應用注意:

(1)CreateObject方法僅能用來創建外置對象實例,不能用來創建系統的內建對象實例,如下列語句是錯誤的。<%seta=Server.CreateObject("Application")%>(2)若想在其他頁面中也可使用已創建好的對象實例,可將對象實例存儲在Session對象或Application對象中。如

<%setsession("conn")=Server.CreateObject("ADODB.Connection")%>三、CreateObject方法的應用注意:(1)Cr四、HTMLEncode方法的應用瀏覽器對HTML標記字符是進行解釋執行的。如果有時候希望顯示某個HTML頁面中涉及到的實際HTML代碼或ASP腳本,就必須使用Server對象的HTMLEncode方法,把HTML標記轉化為轉義字符再發送到瀏覽器。

語法格式為:Server.HTMLEncode(string)舉例:6-1.aspResponse.write“<fontsize=‘5’>youarewelcome!</font>”期望在網頁上寫出:

<fontsize=‘5’>youarewelcome!</font>四、HTMLEncode方法的應用瀏覽器對HTML四、HTMLEncode方法的應用<%Response.Write"<ahref=''>搜狐</a>"'輸出一個換行符Response.Write"<br>"Response.Write

Server.HTMLEncode("<ahref=''>搜狐</a>")%>四、HTMLEncode方法的應用<%六、MapPath方法的應用在網站設計中,我們通常使用虛擬路徑(相對路徑或絕對路徑)。但數據庫文件操作或其他文件就必須使用物理路徑(真實路徑),MapPath方法就是將指定的虛擬路徑映射到物理路徑的方法。

語法格式為:Server.MapPath(虛擬路徑字符串)舉例:6-2.asp六、MapPath方法的應用在網站設計中,我們通常六、MapPath方法的應用(1)在具體應用中,如果需要用到物理路徑,可以直接寫,也可以用MapPath方法轉換。

(2)MapPath方法通常用于數據庫文件操作、文件上傳等操作中。說明六、MapPath方法的應用(1)在具體應用中,如果需要用到七、Execute方法的應用Server.Execute方法允許當前的ASPX頁面執行同一Web服務器上的指定的ASPX頁面,當指定的ASPX頁面執行完畢,控制流程重新返回原頁面發出Server.Execute調用的位置。這種頁面導航方式類似于針對ASPX頁面的一次函數調用。語法格式:

Server.Execute(變量或字符串)舉例:6-3.asp和6-4.asp

七、Execute方法的應用Server.Exe七、Execute方法的應用<body>歡迎光臨我的主頁<%

server.Execute("6-4.asp")%><p>謝謝,再見</body>6-3.asp<body><p>敬請提出寶貴意見</body>6-4.asp七、Execute方法的應用<body>6-3.asp<bo八、Transfer方法的應用

Server.Transfer方法與Server.Execute方法很相似,只是執行完新網頁后不返回原網頁。語法格式:Server.Transfer(字符串或變量)舉例:6-5.asp和6-4.asp八、Transfer方法的應用Server.八、Transfer方法的應用<body>歡迎光臨我的主頁<%

server.transfer("6-4.asp")%><p>謝謝,再見</body>6-5.asp<body><p>敬請提出寶貴意見</body>6-4.asp八、Transfer方法的應用<body>6-5.asp<b課后思考比較異同Response.redirectServer.ExecuteServer.Transfer課后思考比較異同補充知識指由這個文件所在的路徑引起的跟其它文件(或文件夾)的路徑關系。使用相對路徑可以為我們帶來非常多的便利,特別是提高程序的移植性。在www中(廣域網),以http開頭的鏈接都是絕對路徑。指的是某一臺計算機本地的路徑,以盤符開頭,例如C:\、D:\temp等等。ASP的數據庫連接中,只能連接物理路徑,而不能連接虛擬路徑,所以需要用server.mappath對象把相對路徑轉化成物理路徑。相對路徑:絕對路徑:物理路徑:補充知識指由這個文件所在的路徑引起的跟其它文件(或文件夾)的Asp內置對象ASP的特點是面向對象編程,它提供了功能強大的內部對象。其中常用的對象有:RequestResponseSessionApplicationServer

Asp內置對象ASP的特點是面向對象編程,它提供了功能強大的Request對象

Request對象有5種方法可用來獲取客戶端的信息(由客戶端發出的HTTP請求報文)獲取方法功能Form取得客戶端以post方式提交的表單信息QueryString取得客戶端以get方式提交的表單信息或URL后攜帶的信息ServerVariables取得服務器端或客戶端的環境變量信息Cookies取得客戶端瀏覽器的Cookies信息ClientCertificate取得客戶端瀏覽器的身份驗證信息Request對象Request對象有5種方法可用來獲取客Request對象(2)Request.獲取方法(變量名或字符串)其中的參數就是要得到的信息的變量名稱。如果不想加入獲取方法,也可以簡寫為Request(參數)方式,ASP同樣可以幫你取得客戶端的信息。因為沒有指定獲取方法,所以ASP將會依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate這5種獲取方法中檢查是否有信息傳入,如果有則會返回獲得的變量信息。

(1)這里的“獲取方法”更準確的說應該是“數據集合”,因為獲取到的信息其實都在一個集合中。在這里之所以說是“獲取方法”主要是強調從客戶端獲得信息這個功能。數據集合FormQuerystringClientCertificateCookiesServerVariablesRequestRequest對象(2)Request.獲取方法(變量名或Form方法獲取post方式提交的表單信息語法格式:Request.form(“表單元素名稱”)

例:(4-1.asp4-2.asp)Form方法獲取post方式提交的表單信息語法格式:RequForm方法獲取post方式提交的表單信息……<body><formname="test"method="post"action="4-2.asp">……</form></body>……注意:1.checkbox或radio命名為相同時,表示為同一組Form方法獲取post方式提交的表單信息……注意:Form方法獲取post方式提交的表單信息……<%Dimuser_name,user_password,sex,hobby,career,describe user_name=Request.Form("user_name") user_password=Request.Form("user_password") sex=Request.Form("sex") career=Request.Form("career") hobby=Request.Form("hobby") describe=Request.Form("describe")…… %>……Form方法獲取post方式提交的表單信息……Form方法獲取post方式提交的表單信息注意:1.checkbox或radio命名為相同時,表示為同一組2.獲取多項選擇表單元素值的方法:方法一:Request.Form(“表單元素名”)--多個值之間自動以逗號隔開方法二:num=request.form("hobby").count'記下選擇了多少項fori=1tonum'寫出選擇的每一項Response.Writerequest.form("hobby")(i)nextForm方法獲取post方式提交的表單信息注意:Form方法獲取post方式提交的表單信息2.獲取多項選擇表單元素值的方法:方法三:foreachiteminrequest.form("hobby") Response.Writeitem&"/"'寫出選擇的每一項nextForm方法獲取post方式提交的表單信息2.獲取多項選擇表Form方法獲取post方式提交的表單信息服務端獲取表單元素值和客戶端獲取表單元素值的方法不同Form方法獲取post方式提交的表單信息服務端獲取表單元素Form方法獲取post方式提交的表單信息注意點:(1)4-1.asp那是一個簡單的HTML文件,并沒有使用ASP語句,完全可以將名字改為4-1.htm。注意:Form對象和其元素屬性的設置。如action、method、type等。(2)在4-2.asp中定義了幾個變量,變量名字和表單中的元素名字可以相同,也可以不同。主要是為了程序易讀,可以不一樣。

(3)4-1.asp文檔中的form表單和4-2.asp中Request.Form中的form方法有什么區別?前者是html文檔或ASP文檔提供的表單,后者是應用ASP的Request對象獲取html文檔或ASP文檔中的表單信息的方法。

Form方法獲取post方式提交的表單信息注意點:(1)4-Form方法獲取post方式提交的表單信息ASP文件內的表單信息可以傳給自身。見4-3.aspForm方法獲取post方式提交的表單信息ASP文件內的表單Form方法獲取post方式提交的表單信息注意點:(1)程序中的<%IfRequest.Form(“keywords”)<>“”Then%>這個判斷語句非常重要,如果沒有輸入查詢關鍵字,則不執行操作,只有輸入查詢信息才處理if中的語句。(3)比較一下兩種表單信息傳送方式有什么不同?表單form的action對象不同;處理表單信息的位置不同。如:當用戶打開這個網頁時,request.form(“”)得到的結果為空,所以不執行asp代碼。因為打開時網頁的form1沒有把其內容傳遞給自己。只有通過提交方式提交了才能獲得里面元素的值。Form方法獲取post方式提交的表單信息注意點:(1)程序Querystring獲取方法Querystring方法可以獲取get方式提交的表單信息,也可以獲取URL后攜帶的參數信息。

Querystring獲取方法Querystring方Querystring方法獲取get方式提交的表單信息語法格式:Request.querystring(“表單元素名稱”)

例:(4-1_1.asp4-2_2.asp)Querystring方法獲取get方式提交的表單信息語法格Querystring方法獲取get方式提交的表單信息……<body><formname="test"method=“get"action="4-2_2.asp">……</form></body>……Querystring方法獲取get方式提交的表單信息……Querystring方法獲取get方式提交的表單信息……<%Dimuser_name,user_password,sex,hobby,career,describe user_name=Request.querystring("user_name") user_password=Request.querystring("user_password") sex=Request.querystring("sex") career=Request.querystring("career") hobby=Request.querystring("hobby") describe=Request.querystring("describe")…… %>……Querystring方法獲取get方式提交的表單信息……Querystring方法獲取get方式提交的表單信息注意:1.get方式提交的表單信息是非安全方式,附加在URL地址后面url?表單元素1的name=表單元素1的value&表單元素2的name=表單元素2的valueQuerystring方法獲取get方式提交的表單信息注意:Querystring方法獲取URL攜帶參數信息<html><head> <title>QueryString用法示例</title></head><body> <p>請單擊下面的超鏈接</p>

<ahref="4-7.asp?name=白蕓&age=22">顯示</a></body></html>4-4_1.aspQuerystring方法獲取URL攜帶參數信息<htmlQuerystring方法獲取URL攜帶參數信息……<body><%Dimname,agename=Request.QueryString("name")'返回姓名age=Request.QueryString("age")'返回年齡Response.Write"您的姓名是:"&name&",您的年齡是:"&age%></body>……Querystring方法獲取URL攜帶參數信息……Querystring方法獲取URL攜帶參數信息語法:request.querystring(參數關鍵字)形式類似于Querystring方法獲取get方式提交的表單信息,只是這里的參數關鍵字是自定義的,不是表單元素名Querystring方法獲取URL攜帶參數信息語法:reQuerystring方法獲取URL攜帶參數信息URL后傳送的信息如果是變量,不是常數,該怎么表示?

Querystring方法獲取URL攜帶參數信息URL后傳Querystring方法獲取URL攜帶參數信息<body><p>請單擊下面的超鏈接</p><% dimname,age name="白蕓" age=22 %><ahref="4-7.asp?name=<%=name%>&age=<%=age%>">顯示</a></body>4-4-2.aspQuerystring方法獲取URL攜帶參數信息<bodyQuerystring方法獲取URL攜帶參數信息注意:URL后攜帶的都是字符串信息,不用加引號Querystring方法獲取URL攜帶參數信息注意:Querystring方法獲取URL攜帶參數信息應用:圖片展4-6-1.asp和4-6-2.asp類似的還有新聞系統,論壇帖子Querystring方法獲取URL攜帶參數信息應用:類似ServerVariables獲取方法有時候希望知道服務器端或客戶端的信息,如客戶端的IP地址,這時我們可以用ServerVariables方法。課本60頁表格4-5列舉了常用的環境變量。ServerVariables的語法格式:Request.ServerVariables(“環境變量名”)ServerVariables獲取方法有時候希望知道服務器端ServerVariables獲取方法例子:4-7.asp……<body> <% DimIP IP=Request.ServerVariables("REMOTE_ADDR")

Response.Write"來訪者IP地址是:"&IP&"<br>" Dimlocal_IP local_IP=Request.ServerVariables("Local_ADDR")

Response.Write"服務器的IP地址是:"&local_IP %></body>……ServerVariables獲取方法例子:4-7.aspResponse對象Response對象可以向客戶端輸出信息,他的方法有:

方法說明write送出信息到客戶端redirect引導用戶端的瀏覽器至新的Web頁面end終止處理ASP程序,并返回當時的狀況flush立刻送出緩沖區的Html數據clear消除緩沖區中的所有Html頁面BinaryWrite輸出二進制信息Response對象Response對象可以向客戶端輸出信息Write方法write方法是Response對象最普遍、最常用的方法,它直接把信息從服務端送到客戶端,從而實現動態內容的顯示。語法格式:Response.write字符串或變量或常量Write方法write方法是ResponsWrite方法……<%user_name=“G_Jocky” Response.Write"你的密碼是:" Response.Writeuser_name Response.Write“你的姓名是:"&user_name %>……4-8.aspWrite方法……4-8.aspWrite方法注意:(1)Response.write必須在<%%>內,不能在客戶端運行。(2)Response.write=<%=%>,如例子4-9.asp。區別:但在<%%>內可有多個Response.write操作而=只能有一個。Write方法注意:區別:Write方法Write方法還可以用來輸出HTML元素

<bodybgcolor="#FFFFFF"text="#000000"><%

response.write"<divalign='center'>比較Write方法輸出Html元素</div>"%></body><bodybgcolor="#FFFFFF"text="#000000"><divalign="center">比較Write方法輸出Html元素</div></body>4-10.aspand4-11.aspWrite方法Write方法還可以用來輸出HTML元素<bWrite方法注意:(1)HTML代碼中的雙引號要改成單引號。(2)在開發ASP程序時,如果遇到不方便進行ASP語句和HTML元素之間的切換時,可以用Write方法來輸出HTML元素。Write方法注意:Redirect方法在普通網頁中,可以利用超鏈接引導客戶至另一個頁面,但是必須要客戶單擊超鏈接才行。可是有時希望自動引導客戶至另一個頁面,比如:進行網上考試時,當考試時間到時,應自動引導客戶端至結束界面。在ASP中,可使用Redirect方法引導客戶至另一個頁面。

語法格式為:Response.redirect網址變量或網址字符串

Redirect方法在普通網頁中,可以利用超鏈接引導客Redirect方法<% IfRequest.Form("adrress")="csdn"then ‘將用戶引至程序大本營網站

Response.Redirect""

ElseIfRequest.Form("adrress")="book"then ‘將用戶引至網絡書城

Response.Redirect""

EndIf%>4-12.aspRedirect方法<% IfRequest.Form(Redirect方法注意:

(2)如果希望在ASP文件的任意地方使用Redirect語句,那就必須在ASP文件的開頭加上<%Response.Buffer=True%>這一句話。否則,Redirct語句必須放到ASP文件的開頭,如果不放到ASP文件的開頭,網頁執行會出錯:HTTP頭已經寫入到客戶瀏覽器。任何HTTP頭的修改必須在寫入頁內容之前。(1)Redirct語句中網址的寫法,可以是相對地址,也可以是絕對地址。

Redirect方法注意:(2)如果希望在ASP文件的任意Buffer屬性Buffer屬性用來設置服務器端是否將頁面輸出到緩沖區,它的值為True或False。當Buffer為True時,服務器端先輸出至緩沖區,在輸出至緩沖區時,服務器端不響應客戶端,除非所有的服務器瑞文件被處理完畢。當Buffer為False時,服務器端直接將頁面輸出至客戶端瀏覽器。

如果在ASP文件中任意地方用到Redirect方法重定向頁面,則必須在文件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論