亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

ASP編碼必備的8條原則

2024-05-04 11:10:11
字體:
供稿:網(wǎng)友

本文介紹的是用ASP編寫代碼的時(shí)候,我們應(yīng)該遵守的八個(gè)原則。希望對你有幫助,一起來看吧!

ASP是Active Server Page的縮寫,意為“動態(tài)服務(wù)器頁面”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其它程序進(jìn)行交互,是一種簡單、方便的編程工具。在這里僅就代碼優(yōu)化進(jìn)行一些簡單討論。

1、聲明VBScript變量

在ASP中,對vbscript提供了強(qiáng)勁的支持,能夠無縫集成vbscript的函數(shù)、方法,這樣給擴(kuò)展ASP的現(xiàn)有功能提供了很大便利。由于ASP中已經(jīng)模糊了變量類型的概念,所以,在進(jìn)行ASP與vbscript交互的過程中,很多程序員也慣于不聲明vbscript的變量,這樣加重了服務(wù)器的解析負(fù)擔(dān),進(jìn)而影響服務(wù)器的響應(yīng)請求速度。

鑒于此,我們可以象在VB中強(qiáng)制用戶進(jìn)行變量聲明一樣在vbscript中強(qiáng)制用戶進(jìn)行變量聲明。實(shí)現(xiàn)方法是在ASP程序行首放置<% option explicit%>。

2、對URL地址進(jìn)行編碼

在我們使用asp動態(tài)生成一個(gè)帶參數(shù)URL地址并進(jìn)行跳轉(zhuǎn)時(shí),在IE中解析很正常,但在NetScrape瀏覽時(shí)卻有錯(cuò)誤如下:

 

 
  1. HTTP Error 400  
  2. 400 Bad Request  
  3. Due to malformed syntax, the request could not be understood by the server.  
  4. The client should not repeat the request without modifications.  

解決方法是對生成的URL參數(shù)使用ASP內(nèi)置server對象的URLencode方法進(jìn)行URL編碼,例子如下:

 

 
  1. <%  
  2. URL="xur.asp" 
  3. var1="username=" & server.URLencode("xur")  
  4. var2="&company=" & server.URLencode("xurstudio")  
  5. var3="&phone=" & server.URLencode("021-53854336-186")  
  6. response.redirect URL & "?" & var1 & var2 & var3  
  7. %> 

3、清空對象

當(dāng)使用完對象后,首先使用Close方法來釋放對象所占用的系統(tǒng)資源;然后設(shè)置對象值為“nothing”釋放對象占用內(nèi)存。當(dāng)年,我就是在一張頁面上創(chuàng)建了百余個(gè)沒有清空對象的記錄集而崩潰了我的IIS 。下面的代碼使用數(shù)據(jù)庫內(nèi)容建立一個(gè)下拉列表。代碼示例如下:

 

 
  1. <% myDSN="DSN=xur;uid=xur;pwd=xur" 
  2. mySQL="select * from authors where AU_ID<100" 
  3. set conntemp=server.createobject("adodb.connection")  
  4. conntemp.open myDSN  
  5. set rstemp=conntemp.execute(mySQL)  
  6. if rstemp.eof then  
  7. response.write "數(shù)據(jù)庫為空" 
  8. response.write mySQL  
  9. conntemp.close  
  10. set conntemp=nothing  
  11. response.end  
  12.  end if%>  
  13. <%do until rstemp.eof %>  
  14. <%  
  15. rstemp.movenext  
  16. loop  
  17. rstemp.close  
  18. set rstemp=nothing  
  19. conntemp.close  
  20. set conntemp=nothing  
  21. %>  

4、使用字符串建立SQL查詢

使用字符串來建立查詢并不能加快服務(wù)器的解析速度,相反,它還會增加服務(wù)器的解析時(shí)間。但在這里仍然推薦使用字符串代替簡單的查詢語句來進(jìn)行查詢。這樣做的好處是,可以迅速發(fā)現(xiàn)程序問題所在,從而便利高效地生成程序。示例如下:

 

 
  1. <%mySQL= ""select * "  
  2. mySQL= mySQL & "from publishers"  
  3. mySQL= mySQL & "where state='NY'"  
  4. response.write mySQL  
  5. set rstemp=conntemp.execute(mySQL)  
  6. rstemp.close 
  7. set rstemp=nothing  
  8. %> 

5、使用case進(jìn)行條件選擇

在進(jìn)行條件選擇的時(shí)候,盡量使用case語句,避免使用if語句。使用case語句,可以使程序流程化,執(zhí)行起來也比if語句來的快。示例如下:

 

 
  1. <%  
  2. FOR i = 1 TO 1000  
  3. n = i  
  4. Response.Write AddSuffix(n) & "<br>"  
  5. NEXT  
  6. %>  
  7. <%  
  8. Function AddSuffix(num)  
  9. numpart = RIGHT(num,1)  
  10. Select CASE numpart  
  11. CASE "1"  
  12. IF InStr(num,"11") THEN  
  13. num = num & "th"  
  14. ELSE  
  15. num = num & "st"  
  16. END IF  
  17. CASE "2"  
  18. IF InStr(num,"12") THEN  
  19. num = num & "th"  
  20. ELSE  
  21. num = num & "nd"  
  22. END IF  
  23. CASE "3"  
  24. IF InStr(num,"13") THEN  
  25. num = num & "th"  
  26. ELSE  
  27. num = num & "rd"  
  28. END IF  
  29. CASE "4"  
  30. num = num & "th"  
  31. CASE ELSE  
  32. num = num & "th"  
  33. END Select  
  34. AddSuffix = num  
  35. END FUNCTION  
  36. %> 

6、使用adovbs.inc文件中定義的常量打開記錄集

打開記錄集時(shí),可以定義記錄集打開的游標(biāo)類型和鎖定類型。

在adovbs.inc文件中定義了一些常量來定義這些類型。adovbs.inc文件保存在/inetpub/iissamples/IISamples目錄下面。下面列舉幾個(gè)常用的游標(biāo)類型和鎖定類型。

游標(biāo)類型:

adOpenFowardOnly游標(biāo)只能向前;

adOpenKeyset游標(biāo)可向前或者向后,如一用戶添加記錄,新記錄不會出現(xiàn)在記錄集中;

adOpenDynamic游標(biāo)動態(tài)隨意;

adOpenStatic記錄集不對其他用戶造成的記錄修改有所反映。

鎖定類型:

adLockReadOney不能修改記錄集中的記錄;

adLockPessimistic在編輯一條記錄時(shí)鎖定它;

adLockOptimstic調(diào)用記錄集Update方法時(shí)才鎖定記錄;

adLockBatchOpeimstic記錄只能成批更新。

 

 
  1. <!--#INCLUDE VIRTUAL="/ADOVBS.INC" -->  
  2. <%  
  3. connectme="DSN=xur;uid=xur;pwd=xur" 
  4. sqltemp="select * from publishers where name='xur'" 
  5. set rstemp=Server.CreateObject("adodb.Recordset")  
  6. rstemp.open sqltemp, connectme, adOpenStatic,adLockOptimstic  
  7. response.write rstemp.recordcount & " records in<br>" & sqltemp  
  8. rstemp.close  
  9. set rstemp=nothing  
  10. %>  

7、避免在使用global.asa文件中進(jìn)行對象定義

由于global.asa文件中的內(nèi)容可以為站點(diǎn)內(nèi)所有文件引用,無疑,在global.asa文件中進(jìn)行對象定義可以省去很多重復(fù)工作。

比如在global.asa中的application_onstart函數(shù)中進(jìn)行如下定義:

 

 
  1. <%SUB application_onstart  
  2. set application("theCONN")=server.createobject("adodb.connection")  
  3. END SUB %>;  

這樣就可以在站點(diǎn)任何代碼中做類似引用:

 

 
  1. <%  
  2. mySQL="select * from publishers where state='xur' 
  3. set rstemp=application("theconn").execute(mySQL)  
  4. %>  

同樣地,可以在session_onstart函數(shù)中創(chuàng)建記錄集對象

 

 
  1. <%SUB session_onstart  
  2. set session("rstemp")=server.createobject("adodb.recordset")  
  3. END SUB %>  

然后在站點(diǎn)也面中進(jìn)行如下引用:

 

 
  1. <%  
  2. mySQL="select * from publishers where state='xur' 
  3. set session("rstemp")=conntemp.execute(mySQL)  
  4. %>  

但這樣做的同時(shí)也有很大的負(fù)面影響,由于Application和session變量都只有在關(guān)閉網(wǎng)站的時(shí)候才釋放占用的資源,所以session參數(shù)會浪費(fèi)大量不必要內(nèi)存,而且此時(shí)application變量成為服務(wù)器性能的瓶頸。

解決方法:

建立定義對象asp頁面,在需要進(jìn)行調(diào)用這些對象的頁面上,引入這張asp頁面。假設(shè)定義對象的asp頁面名稱為define.asp,則只要在對應(yīng)asp頁面中加入以下語句就能引入該頁面。

 

在進(jìn)行頁面引進(jìn)時(shí),最好在待引進(jìn)的asp文件中不要包含<%@LANGUAGE="VBSCRIPT"%>語句。因?yàn)樵赼sp文件中,只能有一句由@來定義的腳本解析語言。

8、安全防護(hù)

asp提供了很好的代碼保護(hù)機(jī)制,所有的asp代碼都在服務(wù)器端執(zhí)行而只返回給客戶端代碼執(zhí)行結(jié)果。即便這樣,在老版本的IIS中還可以在文件名后面家::$DATA來查看asp的源代碼,這已經(jīng)屬于Web Server安全范疇不在本文討論范圍內(nèi)。下面提出兩點(diǎn)簡單的安全注意事項(xiàng)。

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

不要把數(shù)據(jù)庫文件放在網(wǎng)站結(jié)構(gòu)內(nèi)部,這樣,當(dāng)惡意人士獲取數(shù)據(jù)庫路徑后,就可以輕易獲取該數(shù)據(jù)庫,進(jìn)而肆意更改數(shù)據(jù)庫內(nèi)容。比較好的做法是,為數(shù)據(jù)庫建立DSN(Date Source Name),而在進(jìn)行數(shù)據(jù)庫訪問時(shí)直接訪問該DSN。

通過本文關(guān)于ASP編碼的八條原則介紹,希望能夠給你帶來幫助。


注:相關(guān)教程知識閱讀請移步到ASP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
天天色天天操综合| 日韩av在线电影观看| 97久久夜色精品国产九色| 一级黄色录像免费看| 在线国产电影不卡| 黄视频在线观看www| 亚洲女成人图区| 国产一二三在线观看| 91精品办公室少妇高潮对白| 国产精品久久免费看| 国产又粗又大又长| 狠狠色丁香久久婷婷综| 三级在线视频观看| 天天操狠狠操夜夜操| 国产精品白丝jk白祙喷水网站| 久久欧美一区二区| 欧美日韩一区二区三| 欧美狂野激情性xxxx在线观| 亚洲欧美日韩中文字幕在线观看| 波多野结衣久久| 亚洲国产精品二区| 欧美综合一区| 成人丁香基地| 国产精品一区二区无线| 亚洲.欧美.日本.国产综合在线| 九九热播视频在线精品6| 亚洲网站在线| 在线观看av免费| 日韩中文字幕在线免费| 日韩精品一二三区| 成人avav在线| 先锋影音男人资源网| 色偷偷综合网| 97成人资源站| 国产三级按摩推拿按摩| 999成人精品视频线3| 国产精品美女一区二区三区四区| 亚洲欧美一区二区三区在线观看| 好吊色免费视频| 久久精品国产亚洲av麻豆色欲| 黄色国产一级视频| 男同在线观看| 成年人看的免费视频| 日韩免费av一区二区三区| 国产精品久久久久久久天堂| 日韩高清a**址| 阿v免费在线观看| 999在线观看视频| 中文字幕免费高清视频| 污污内射在线观看一区二区少妇| 欧美亚洲愉拍一区二区| 亚洲精品中文字幕成人片| 天天做天天爱天天综合网2021| 亚洲综合一区二区| 九色福利视频| 台湾天天综合人成在线| 国产精品进线69影院| 国产精品91久久久久久| 日韩美女福利视频| 日韩无套无码精品| 国产美女精品视频| 免费黄网大全| 久久久久久久久久久一区| 亚洲综合在线一区| 暖暖影院日本高清...免费| 可以免费看毛片的网站| 国产免费永久在线观看| a√天堂在线观看| 四虎电影网址| 国产精品91xxx| 免费国产在线精品一区二区三区| 成人写真视频福利网| 日本中文字幕精品| 色大18成网站www在线观看| 国产亚洲精品熟女国产成人| 国产精品无码久久久久一区二区| 久久久久国产精品嫩草影院| 日本午夜免费一区二区| 九九热精品在线视频| 国产精品亚洲аv天堂网| 国产成人在线观看| 国产欧美短视频| 日本一二区免费| 91成人免费在线观看| 波多野结衣一区二区三区在线| 国产精品99久久免费| 99re这里只有精品在线| 91精品国产91| 国产xxxxxxxxx| 91影视免费在线观看| 一区二区三区四区日本视频| 成年黄网站在线观看免费| 麻豆视频久久| 最近免费中文字幕视频2019| 少妇一级淫片免费放播放| 中文字幕123| 91丨porny丨九色| 天天躁日日躁狠狠躁免费麻豆| 国产又粗又长免费视频| 波多野结衣视频在线播放| 亚洲另类激情图| 91福利视频导航| 欧美成人免费一级人片100| 久久精品国产亚洲一区二区| 国产欧美日韩卡一| 91九色综合| 天堂在线视频播放| 欧美日韩成人一区二区三区| av中文字幕在线看| 欧美午夜电影在线观看| 5566先锋影音夜色资源站在线观看| 亚洲精品国产a| 国产在线色视频| 3d动漫啪啪精品一区二区免费| 国产成人精品一区二区免费视频| 欧美极品少妇xxxxⅹ免费视频| 中文字幕欧美日韩一区| 粉嫩av一区二区三区天美传媒| 亚洲午夜精品久久久久久久久| 久久er99热精品一区二区三区| 4hu最新网址| 国产成人生活片| 西西444www无码大胆| 亚洲免费观看高清完整版在线观看熊| 中国一级大黄大黄大色毛片| 在线一区二区三区四区| 久久久久亚洲av无码专区首jn| 欧美激情导航| 不卡中文字幕av| 免费特级黄色片| 国产欧美一区二区精品仙草咪| 综合色就爱涩涩涩综合婷婷| 四虎成人精品永久免费av| 国产精品电影一区二区三区| 在线手机福利影院| 中文字幕亚洲区| 欧美日韩国产影院| 无码少妇一区二区三区| 正在播放国产对白害羞| 欧美国产日韩二区| 韩国专线一区二三区| 精品一区久久久久久| 制服黑丝国产在线| 欧美日韩国产一区二区三区| 免费污污网站| 9999在线视频| 99热在线观看免费| 色综合天天色综合| 国产精品啊v在线| 久久久亚洲高清| 国模套图日韩精品一区二区| 日韩av观看网址| 国产在亚洲线视频观看| 亚洲成人激情av| 韩国视频一区二区| 97国产精品| 欧美在线3区| 亚洲91精品在线| 亚洲成人一区二区三区| 精品国产亚洲一区二区三区在线| 国产伦理片在线观看| 亚洲 国产 日韩 欧美| 精品一区91| 黄色精品视频在线观看| 精品国产免费第一区二区| 2020国产精品久久精品不卡| 欧美啪啪免费视频| 日本一区二区三区久久久久久久久不| av免费看在线| 日韩一级裸体免费视频| 成人精品在线看| 上原亚衣加勒比在线播放| 加勒比色综合久久久久久久久| 素人啪啪色综合| 久久尤物电影视频在线观看| 丰满肉嫩西川结衣av| 91色中文字幕| 久久久精品视频成人| 国产麻豆9l精品三级站| 欧美中文在线视频| 国产一精品一av一免费爽爽| 国产aⅴ一区二区三区| 欧美日韩中文| 国产suv一区二区| 色姑娘综合av| 精品国产一区二区三区四区在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久成人精品无人区| 亚洲黄色网址大全| 亚洲免费一区三区| 国产福利久久精品| 亚洲午夜精品久久久久久久久久久久| 欧美一二三区视频| 中文字幕亚洲字幕| 亚洲 小说区 图片区 都市| 国产主播第一页| av一区二区三区四区| 日韩电影av| 最近中文字幕大全中文字幕免费| 日本免费一区二区三区视频| 日本1级在线| 免费影视观看网站入口| 波多野结衣视频网址| 中文字幕资源网在线观看| 国产男女无遮挡猛进猛出| 国产另类第一区| 波多野结衣小视频| 日韩成人久久久| 91免费黄视频| 久久久久影视| av中文字幕免费在线观看| 国产精品一区二区三区av| 中文字幕不卡三区视频| 国产高清不卡二三区| 一区二区三区在线观看免费视频| 黄色网址免费看| 伊人伊人av电影| 精品国产av色一区二区深夜久久| 免费精品国产的网站免费观看| 亚洲欧美高清视频| 免费在线看黄色片| 稀缺小u女呦精品呦| 欧美三级视频在线播放| 日韩伦理一区二区三区av在线| 欧美三区四区| 国产伦精品一区二区三区高清版禁| 欧美一区二区三区红桃小说| 免费观看欧美成人禁片| 四虎影视永久免费在线观看一区二区三区| 亚洲天堂影视av| 妺妺窝人体色www看人体| 色妞ww精品视频7777| 亚洲av无码精品一区二区| 成人做爰视频www网站小优视频| 欧美日韩一区二区三区在线视频| 四虎永久免费观看| 日韩亚洲电影在线| 午夜天堂精品久久久久| 免费黄色在线播放| 欧美精品国产白浆久久久久| 久久久久久网| 欧美精品福利在线| 妺妺窝人体色WWW精品| 中文xxx视频| 潘金莲一级淫片aaaaaa播放| 99久久综合色| а√天堂资源国产精品| 女人18毛片水真多免费播放| 亚洲国内精品| av免费播放| 国产免费不卡视频| 超级砰砰砰97免费观看最新一期| 黑人巨大猛交丰满少妇| 国产精品无码一本二本三本色| 亚洲一区二区在线免费观看| 成熟的女同志hd| 日韩成人高清视频| 中文字幕亚洲不卡| 欧美视频在线观看一区二区三区| 欧美系列一区二区| 午夜精品久久久久久久99樱桃| 2021国产精品久久精品| 欧美日本高清一区| 色婷婷免费视频| 日韩精品第二页| 成人无号精品一区二区三区| 亚洲精品在线免费看| 亚洲久草在线视频| 4438成人网| 国产精品熟女久久久久久| 亚洲高清av在线| 亚洲二区三区不卡| 亚洲美女欧洲| 性色av一区二区咪爱| 国产亚洲精品久| 色欧美乱欧美15图片| 黄色三级视频在线播放| 十大免费污污软件| 国产农村av| 日本一区二区三区在线观看视频| 国内一区二区在线| 欧洲美女女同性互添| 精品黑人一区二区三区观看时间| 中文字幕日日夜夜| 四虎影院影音| 视频在线观看一区| 国内精品伊人久久久| 成人免费毛片日本片视频| 成人有码在线播放| 日韩美女久久久| 中文网丁香综合网| 欧美日韩综合不卡| 欧美国产日韩一区二区三区| 国产三级伦理在线| 91 com成人网| 国产不卡精品在线| 亚洲日本va中文字幕| 亚洲精品国产一区二区三区| 亚洲欧美日韩中文在线制服| 国产成人无码精品久在线观看| 99热这里精品| 午夜影院黄色片| 成人黄色午夜影院| 国产成人精品亚洲精品色欲| 大胆高清日本a视频| 中文字幕制服丝袜一区二区三区| 台湾亚洲精品一区二区tv| 中文字幕一区二区三区电影| 久久国产成人| gay欧美网站| 黄色精品网站| 六月丁香在线视频| 亚洲精品**不卡在线播he| 在线伊人电影| 国产三级按摩推拿按摩| 欧美乱大交xxxxx另类电影| 日本成人在线视频网站| 国产精品日韩电影| 多人啪嗒啪嗒在线观看免费| 久久黄色美女电影| 久久久久免费看黄a片app| 国产波霸爆乳一区二区| 国产中文伊人| 91极品身材尤物theporn| 啪啪小视频网站| 91精彩视频在线观看| 26uuu另类亚洲欧美日本老年| 国产日韩亚洲欧美精品|