六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

asp編程案例:ASP設計經常見問題及回答精要

[摘要]作為微軟推出的網頁與數(shù)據(jù)庫解決方案,ASP由于有微軟得天獨厚的操作系統(tǒng)等技術后盾支持,因此得到了迅速的發(fā)展,并且正受到越來越多的歡迎,在目前在電子商務網站的建設中有很多都使用ASP來編寫程序。 近來有很多的讀者向我們咨詢學習ASP的方法和在學習中遇到的一些問題,其中有一些是初學者經常遇到和面臨的問...

作為微軟推出的網頁與數(shù)據(jù)庫解決方案,ASP由于有微軟得天獨厚的操作系統(tǒng)等技術后盾支持,因此得到了迅速的發(fā)展,并且正受到越來越多的歡迎,在目前在電子商務網站的建設中有很多都使用ASP來編寫程序。

近來有很多的讀者向我們咨詢學習ASP的方法和在學習中遇到的一些問題,其中有一些是初學者經常遇到和面臨的問題。為了讓讀者在學習ASP的過程中加深對ASP的了解,并能夠有效地解決遇到的問題,我們特別收集了比較有代表性的一些問題,在此列舉出來并一一給予解答,希望能在這有限的篇幅里為你學習ASP助一臂之力。

1、問題:ASP是一種編程語言嗎?

答:ASP不是編程語言,而是一種開發(fā)環(huán)境。ASP提供了一個在服務器端執(zhí)行指令的環(huán)境,它利用了特殊的符號()來區(qū)分HTML與必須經過服務器翻譯才能送往客戶端的命令。它可以執(zhí)行的指令包括HTML語言,Microsoft VBScript和Microsoft Jscript等,因此可以制作出功能強大的Web應用程序。

2、問題:在Web服務器上容納多個Web站點,能使用PWS嗎?

答:在PWS上只能容納一個Web站點。為了在相同的計算機上容納多個Web站點,需要使用Windows NT Server或Windows 2000 Server/Professional和IIS。

3、問題:如何使用6個內置ASP對象?

答:ASP提供了多個內嵌對象,無須建立就可以在指令中直接訪問和使用它們,這六個對象主要有:請求(Request)對象、響應(Response)對象、工作階段(Session)對象、應用程序(Application)對象、服務器(Server)對象、Cookies對象,這六個對象中的服務器(Server)對象可加載其他組件,這可以擴展ASP的功能。

使用Server.CreateObject所建立的對象,它的生命周期在它建立時開始,在它所在的網頁程序結束時結束。如果想要讓該對象跨網頁使用,則可以用Session對象來記錄Server.CreateObject所建立的對象。

4、問題:為什么在使用Response.Redirect的時候出現(xiàn)以下錯誤:“標題錯誤,已將HTTP標題寫入用戶端瀏覽器,對任何HTTP的標題所作的修改必須在寫入頁內容之前”?

答:Response.Redirect可以將網頁轉移至另外的網頁上,使用的語法結構是這樣的:Response.Redirect網址,其中網址可以是相對地址或絕對地址,但在IIS4.0使用與在IIS5.0使用有所不同。

在IIS4.0轉移網頁須在任何數(shù)據(jù)都未輸出至客戶端瀏覽器之前進行,否則會發(fā)生錯誤。這里所謂的數(shù)據(jù)包括HTML的卷標,例如:< HTML>,< BODY>等,而在IIS5.0中已有所改進,在IIS5.0的默認情況下緩沖區(qū)是開啟的,這樣的錯誤不再產生。

在Response對象中有一Buffer屬性,該屬性可以設置網站在處理ASP之后是否馬上將數(shù)據(jù)傳送到客戶端,但設置該屬性也必須在傳送任何數(shù)據(jù)給客戶端之前。

為保險起見,無論采用何種ASP運行平臺,在頁面的開始寫上< % Response.Buffer=True %>,將緩沖區(qū)設置為開啟,這樣的錯誤就不會發(fā)生了。

5、問題:緩沖輸出對于網頁傳輸有沒有影響?

答:在比較大的Web頁中,第一部分在瀏覽器中出現(xiàn)可能會有一些延遲,但是加載整個Web頁的速度比不用緩沖要快。

6、問題:在沒有表單提交時查詢字符串的值是否可以使用Request.QueryString集合?

答:Request對象用于讀取瀏覽器的數(shù)據(jù),它除了可以讀取表單字段的內容,還可以用來讀取附帶在網址后面的參數(shù),無論請求字符串怎樣添加到鏈接地址中對Request來說都沒有什么不同。使用get方法提交一個表單,還是跟隨一個附加查詢串的鏈接查詢字符串中所有的值,都可以使用Request.QueryString集合。

7、問題:我在ASP腳本中寫了很多的注釋,這會不會影響服務器處理ASP文件的速度?

答:在編寫程序的過程中,作注釋是良好的習慣。經國外技術人員測試,帶有過多注釋的ASP文件整體性能僅僅會下降0.1%,也就是說在實際應用中基本上不會感覺到服務器的性能下降的。

8、問題:需不需要在每個ASP文件的開頭使用< % @LANGUAGE=VBScript % >?

答:在每個ASP文件的開頭使用< % @LANGUAGE=VBScript %>代碼是用來通知服務器現(xiàn)在使用VBScript來編寫程序,但因為ASP的預設程序語言是VBScript,因此忽略這樣代碼也可以正常運行,但如果程序的腳本語言是JavaScrip,就需要在程序第一行指明所用的腳本語言。

9、問題:我有沒有必要在每一個ASP文件中使用“Option Explicit”?

答:在實際應用中,VBScript變量的概念已經模糊了,允許直接使用變量,而不用Dim聲明變量,但這并不是一個好習慣,容易造成程序錯誤,因為可能重復定義一個變量。我們可以在程序中使用Option Explicit語句,這樣在使用一個變量的時候,必須先聲明它,如果使用了沒有經過聲明的變量,運行時,程序就會出錯。

實踐證明,ASP文件中使用“Option Explicit”可以使得程序出錯機會降到最少,并且會大大提升整體性能。

10、問題:運行ASP文件時有什么安全措施?

答:ASP提供了很好的代碼保護機制,所有的ASP代碼都在服務器端執(zhí)行而只返回給客戶端代碼執(zhí)行結果。但仍不排除惡意人士對Web服務器的刻意破壞,所以在編寫ASP文件時更要注意安全問題。

雖然在ASP中引入文件以inc作為擴展名,在這里仍建議以ASP作為引文件的擴展名。當這些代碼在安全機制不好的Web Server上運行時,只需在地址欄上輸入引入文件的地址(inc為擴展名),就可以瀏覽該引入文件的內容,這是由于在Web Server上,如果沒有定義好解析某類型(比如inc)的動態(tài)連接庫時,該文件以源碼方式顯示。

另外,不要把數(shù)據(jù)庫文件放在網站結構內部,這樣,當惡意人士獲取數(shù)據(jù)庫路徑后,就可以輕易獲取該數(shù)據(jù)庫,進而肆意更改數(shù)據(jù)庫內容。比較好的做法是,為數(shù)據(jù)庫建立數(shù)據(jù)源名稱DSN(Date Source Name),在DSN中存儲了有關連接到指定數(shù)據(jù)提供者的信息,包括:“數(shù)據(jù)庫的物理位置,用于訪問數(shù)據(jù)庫的驅動程序的類型,訪問數(shù)據(jù)庫的驅動程序所需要的任何其他參數(shù)”,在進行數(shù)據(jù)庫訪問時可以直接訪問該DSN。

11、問題:評介Web數(shù)據(jù)庫管理系統(tǒng)時,應該考慮哪些問題?

答:在評價一個Web數(shù)據(jù)庫管理系統(tǒng)時,必須考慮到三方面的問題:多用戶問題;所建立的Web數(shù)據(jù)庫應該是關系型的;數(shù)據(jù)庫的安全性問題。

12、問題:ADO是什么,它是如何操作數(shù)據(jù)庫的?

答:ADO的全名是ActiveX Data Object(ActiveX數(shù)據(jù)對象),是一組優(yōu)化的訪問數(shù)據(jù)庫的專用對象集,它為ASP提供了完整的站點數(shù)據(jù)庫解決方案,它作用在服務器端,提供含有數(shù)據(jù)庫信息的主頁內容,通過執(zhí)行SQL命令,讓用戶在瀏覽器畫面中輸入,更新和刪除站點數(shù)據(jù)庫的信息。

ADO主要包括Connection,Recordset和Command三個對象, 它們的主要功能如下:

·Connection對象:負責打開或連接數(shù)據(jù)庫文件;

·Recordset對象:存取數(shù)據(jù)庫的內容;

·Command對象:對數(shù)據(jù)庫下達行動查詢指令,以及執(zhí)行SQL Server的存儲過程。

13、問題:使用Recordset對象和Command對象來訪問數(shù)據(jù)庫的區(qū)別在哪里?

答:Recordset對象會要求數(shù)據(jù)庫傳送所有的數(shù)據(jù),那么數(shù)據(jù)量很大的時候就會造成網絡的阻塞和數(shù)據(jù)庫服務器的負荷過重,因此整體的執(zhí)行效率會降低。

利用Command對象直接調用SQL語句,所執(zhí)行的操作是在數(shù)據(jù)庫服務器中進行的,顯然會有很高的執(zhí)行效率。特別是在服務器端執(zhí)行創(chuàng)建完成的存儲過程,可以降低網絡流量,另外,由于事先進行了語法分析,可以提高整體的執(zhí)行效率。

14、問題:是否必須為每一個Recordset對象創(chuàng)建一個Connection對象?

答:可以同時對不同的Recordset對象使用相同的Connection對象,以節(jié)省資源。

15、問題:什么是數(shù)據(jù)庫管理系統(tǒng)(DBMS)?

答:數(shù)據(jù)庫為了保證存儲在其中的數(shù)據(jù)的安全和一致,必須有一組軟件來完成相應的管理任務,這組軟件就是數(shù)據(jù)庫管理系統(tǒng),簡稱DBMS,DBMS隨系統(tǒng)的不同而不同,但是一般來說,它應該包括以下幾方面的內容:

數(shù)據(jù)庫描述功能:定義數(shù)據(jù)庫的全局邏輯結構,局部邏輯結構和其他各種數(shù)據(jù)庫對象;

數(shù)據(jù)庫管理功能:包括系統(tǒng)配置與管理,數(shù)據(jù)存取與更新管理,數(shù)據(jù)完整性管理和數(shù)據(jù)安全性管理;

數(shù)據(jù)庫的查詢和操縱功能:該功能包括數(shù)據(jù)庫檢索和修改;

數(shù)據(jù)庫維護功能:包括數(shù)據(jù)引入引出管理,數(shù)據(jù)庫結構維護,數(shù)據(jù)恢復功能和性能監(jiān)測。

為了提高數(shù)據(jù)庫系統(tǒng)的開發(fā)效率,現(xiàn)代數(shù)據(jù)庫系統(tǒng)除了DBMS之外,還提供了各種支持應用開發(fā)的工具。

16、問題:當前流行的WEB數(shù)據(jù)庫管理系統(tǒng)有哪些?

答:當前流行的Web數(shù)據(jù)庫管理系統(tǒng)有微軟的SQL Server、Oracle、DB2、Sybase,小規(guī)模的企業(yè)多使用Access。

17、問題:在ASP中使用ADO的AddNew方法和直接使用“Insert into...”語句有何不同?哪種方式更好?

答:ADO的AddNew方法只是將“Insert into ”語句封裝了起來,所以,當對大量數(shù)據(jù)進行操作的時候,直接使用SQL語句將會大大加快存取數(shù)據(jù)的速度,因為它減少了ADO的“翻譯”時間,由于SQL語句所執(zhí)行的操作是直接在數(shù)據(jù)庫服務器中進行的,尤其在數(shù)據(jù)量很大的時候有顯著的優(yōu)勢。

18、問題:為什么我在ASP中使用標準的插入記錄語句 insert into books(name,email) values(“kitty”, “[email protected]”)會出錯?

答:SQL(Structured Query Language/結構式查詢語言)是IBM公司在1970年代所發(fā)展出來的數(shù)據(jù)查詢語言,它現(xiàn)在已經成為關系型數(shù)據(jù)庫查詢語言的標準。SQL語句是一種以英文為基礎的程序語言,可以使用它來添加,管理以及存取數(shù)據(jù)庫。

在SQL語句中添加時的字符串雖然可以使用雙引號,但在ASP中卻需要使用單引號才能正常執(zhí)行。所以應當寫成insert into books(name,email) values(‘kitty’,‘[email protected]’)。

19、問題:什么是ActiveX 控件? 在哪里可以得到這些ActiveX控件?

答:Microsoft ActiveX控件是由軟件提供商開發(fā)的可重用的軟件組件。除了ASP的內嵌對象外,另外安裝進來的ActiveX控件也可以在ASP中使用,這樣可以節(jié)省許多寶貴的開發(fā)時間,在ASP中其實也內嵌了很多的ActiveX控件可以使用。

使用ActiveX控件,可以很快地Web應用程序、以及開發(fā)工具中加入特殊的功能。例如,使用AdRotator對象來制作廣告滾動板,使用FileSystemObject對象進行文件存取,使用Marquee對象實現(xiàn)滾動文字。

現(xiàn)在,已有1000多個商用的ActiveX控件,開發(fā)ActiveX控件可以使用各種編程語言,如C,C++等,以及微軟公司的 Visual Java開發(fā)環(huán)境Microsoft Visual J++。 ActiveX控件一旦被開發(fā)出來,設計和開發(fā)人員就可以把它當作預裝配組件,用于開發(fā)客戶程序。以此種方式使用 ActiveX控件,使用者無需知道這些組件是如何開發(fā)的,在很多情況下,甚至不需要自己編程,就可以完成網頁或應用程序的設計。

目前由第三方軟件開發(fā)商提供的商用控件有1000多種。微軟ActiveX組件庫(ActiveX Component Gallery)中存著有關信息以及相關的連接,它們指向微軟及第三方開發(fā)商提供的各種 ActiveX 控件。在微軟ActiveX組件庫(ActiveX Component Gallery)中,可以找到開發(fā)Internet增強型ActiveX 控件的公司列表。

20、問題:為什么使用strStartPort=(Request.Form ("catmenu_0")語句取到表單中起始站點的值在數(shù)據(jù)庫卻找不到?

答:這是因為取到的起始站點的值可能有空格,比如原意是“杭州”,但是由于空格存在,ASP程序取到的值可能就是“杭州”,而數(shù)據(jù)庫中只有“杭州”的記錄,當然就找不到了,解決的方法是利用Trim 函數(shù)將字符串兩頭空格全部去除,相應的語句為:

strStartPort=TRIM(Request.Form("catmenu_0"))

21、問題:在ASP中當變量的生命周期結束后,有幾種保留變量內容的方法?

答:任何導致網頁結束的操作,比如當按下瀏覽器的“刷新”按鈕,或者關閉了瀏覽器,再重新打開它,都會導致變量生命周期的結束。

如果希望在網頁結束執(zhí)行時,還能夠保留變量的內容,以備下一次執(zhí)行時使用,就可以借助Application對象來實現(xiàn)。比如可以利用Application對象來制作統(tǒng)計網站訪問量的計數(shù)器。

Session對象跟Application對象一樣,可以在網頁結束時將變量的內容存儲下來,但是與Application對象不同的是,每個聯(lián)機是一個獨立的Session對象,簡單地說就是所有聯(lián)機上網者只會共享一個Application對象,但每位聯(lián)機上網者卻會擁有自己的Session對象。

Application對象與Session對象可以幫我們把信息記錄在服務器端,而Cookies對象則會借助瀏覽器提供的Cookies功能將信息記錄在客戶端。有一點要注意,Cookies是記錄在瀏覽器的信息,所以數(shù)據(jù)的存取并不象存取其他ASP對象(信息存儲在Server端)那么簡單,就實際運行來看,只有在瀏覽器開始瀏覽Server的某一網頁,而Server尚未下載任何數(shù)據(jù)給瀏覽器之前,瀏覽器才能夠與Server進行Cookies數(shù)據(jù)的交換。

22、問題:對象使用完后應該怎么辦?

答:當使用完對象后,首先使用Close方法來釋放對象所占用的系統(tǒng)資源;然后設置對象值為“nothing”來釋放對象占用的內存,否則會因為對象太多導致WEB服務站點運行效率降低乃至崩潰,相應語句如下:

<%

對象.close

set對象= nothing

%>

23、問題:在ASP文件中讀取HTML的表單字段有幾種方法?

答:Request對象除了可以用來讀取附帶在網址后面的參數(shù)以外,也可以讀取HTML表單字段的內容,經常使用的語法結構如下:

<Form name =Formname method=“Get Post”Action=“URL”>< Form >

其中的method可以接受Get或Post兩種傳輸?shù)姆椒�,其中的Post是允許傳輸大量數(shù)據(jù)的方法,而Get方法會將所要傳輸?shù)臄?shù)據(jù)附在網址后面,然后一起送達服務器,因此傳送的數(shù)據(jù)量就會受到限制,但是執(zhí)行效率卻比Post方法好。

使用Get或Post方法都可以將數(shù)據(jù)送至服務器,使用Request對象接收數(shù)據(jù)的相對應方法如下:

Get:Request.QueryString(“字段名稱”),也可以寫成Request (“字段名稱”)

Post:Request.Form (“字段名稱”),也可以寫成Request (“字段名稱”)

24、問題:如何提高使用Request集合的效率?

答:在使用Request集合時,由于包含了一系列對相關集合的搜索,這比訪問一個局部變量要慢得多。因此,如果打算在頁面中多次使用Request集合中的一個值,應該考慮將其存貯為一個局部變量。

25、問題:在ASP頁面中既可以使用VBScript,也可以使用Jscript,混合使用腳本引擎好嗎?

答:雖然在ASP頁面中既可以使用VBScript,也可以使用JScript。但是在同一個頁面上同時使用JScript和VBScript則是不可取的。因為服務器必須實例化并嘗試緩存兩個(而不是一個)腳本引擎,這在一定程度上增加了系統(tǒng)負擔。因此,從性能上考慮,不應在同一頁面中混用多種腳本引擎。

26、問題:當我們建立了一個ASP文件,并且符合語法時,通過瀏覽器輸入以下地址,或通過資源管理器打開瀏覽:c:\inetpub\wwwroot\a.asp,將出現(xiàn)無法運行的錯誤,并提示權限不對或文件無法訪問,為何不能正常運行ASP文件?

答:這是因為ASP文件首先要求站點是具備“執(zhí)行(腳本)”屬性的;然后要求按照URL格式輸入地址,而不是DOS格式,我們需要在電腦上安裝好并啟動Web服務平臺,并確保ASP文件存放在Web服務器的虛擬目錄下,就可以通過HTTP的格式來瀏覽,在瀏覽器的地址欄輸入:“http:// Web站點名稱(或站點的IP地址)/ASP文件名稱”,回車后就可以在瀏覽器中看到服務器執(zhí)行ASP文件的結果。

27、問題:什么是ASP.NET?它與ASP有什么關系?

答:Active Server Pages(ASP,活動服務器頁面)就是一個比較簡單編程環(huán)境,在其中,可以混合使用HTML、腳本語言以及少量組件來創(chuàng)建服務器端的Internet應用程序;

ASP.NET是微軟力推的功能強大的編程環(huán)境,可以使用C#等多種高級語言及腳本語言、HTML、XML、XSL等來創(chuàng)建基于網絡的應用程序。ASP.NET將C#作為一種面向對象語言,在很多方面來看,C#將成為微軟的與Java相似的語言。 C#是ASP.NET開發(fā)中一個最重要的功能,微軟會將C#發(fā)展成為Java的強勁對手。這也是微軟.Net框架的一個重要組成部分。我認為C#是微軟在編程語言領域擊敗對手的主要工具。

ASP.NET在面向對象性、數(shù)據(jù)庫連接、大型站點應用等方面都優(yōu)于ASP程序,ASP.NET還提供更多的其他方面的新特性,例如:內置的對象緩存和頁面結果緩存;內置的XML支持,可用于XML數(shù)據(jù)集的簡單處理;服務器控制提供了更充分的交互式制等。

ASP.NET依然完全鎖定在微軟的操作系統(tǒng)中,要真正發(fā)揮ASP.NET潛力,你要使用C#或vb.net。這兩種語言將成為ASP.NET標準的核心的腳本語言。


主站蜘蛛池模板: 亚洲欧美四级在线播放 | 天天综合网久久 | 日韩一区二区久久久久久 | 天天久久综合网站 | 一区二区三区视频在线播放 | 三级黄色免费看 | 天天干天天拍天天操 | 色美女在线 | 亚洲男人的天堂在线播放 | 日日爱夜夜操 | 字幕网资源站中文字幕 | 日韩一级片免费观看 | 色偷偷狠狠色综合网 | 日韩日韩日韩手机看片自拍 | 天天草天天 | 在线成人免费观看国产精品 | 中文字幕在线观看亚洲日韩 | 中文国产欧美在线观看 | 天天干夜夜玩 | 综合玖玖 | 天堂网中文 | 热99这里有精品综合久久 | 中文字幕视频一区二区 | 欧美在线一级视频 | 天天色天天草 | 香蕉视频w | 午夜黄大色黄大片美女图片 | 亚洲欧美日本在线 | 天天性综合| 天天影视色香欲综合影视大全 | 无遮挡毛片a级武则天 | 日本最新免费二区三区 | 亚洲成在人线久久综合 | 欧美综合在线视频 | 污视频免费在线观看 | 亚洲第一页综合 | 一级毛片一级毛片一级毛片aaav | 天堂中文在线免费观看 | 在线另类视频 | 日本亚洲欧美美色 | 四虎私人影院 |