日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

ASP編碼必備的8條原則

瀏覽:442日期:2022-06-05 11:49:44

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

1、聲明VBScript變量

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

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

2、對URL地址進行編碼

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

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

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

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

3、清空對象

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

<% myDSN="DSN=xur;uid=xur;pwd=xur"  
mySQL="select * from authors where AU_ID<100"  
set conntemp=server.createobject("adodb.connection")  
conntemp.open myDSN  
set rstemp=conntemp.execute(mySQL)  
if rstemp.eof then  
response.write "數(shù)據(jù)庫為空"  
response.write mySQL  
conntemp.close  
set conntemp=nothing  
response.end  
 end if%>  
<%do until rstemp.eof %>  
<%  
rstemp.movenext  
loop  
rstemp.close  
set rstemp=nothing  
conntemp.close  
set conntemp=nothing  
%> 

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

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

<%mySQL= ""select * "  
mySQL= mySQL & "from publishers"  
mySQL= mySQL & "where state="NY""  
response.write mySQL  
set rstemp=conntemp.execute(mySQL)  
rstemp.close  
set rstemp=nothing  
%> 

5、使用case進行條件選擇

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

<%  
FOR i = 1 TO 1000  
 n = i  
 Response.Write AddSuffix(n) & "<br>"  
NEXT  
%>  
<%  
Function AddSuffix(num)  
numpart = RIGHT(num,1)  
Select CASE numpart  
CASE "1"  
IF InStr(num,"11") THEN  
num = num & "th"  
ELSE  
num = num & "st"  
END IF  
CASE "2"  
IF InStr(num,"12") THEN  
num = num & "th"  
ELSE  
num = num & "nd"  
END IF  
CASE "3"  
IF InStr(num,"13") THEN  
num = num & "th"  
ELSE  
num = num & "rd"  
END IF  
CASE "4"  
num = num & "th"  
CASE ELSE  
num = num & "th"  
END Select  
AddSuffix = num  
END FUNCTION  
%> 

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

打開記錄集時,可以定義記錄集打開的游標類型和鎖定類型。

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

游標類型:

  • adOpenFowardOnly游標只能向前;
  • adOpenKeyset游標可向前或者向后,如一用戶添加記錄,新記錄不會出現(xiàn)在記錄集中;
  • adOpenDynamic游標動態(tài)隨意;
  • adOpenStatic記錄集不對其他用戶造成的記錄修改有所反映。

鎖定類型:

  • adLockReadOney不能修改記錄集中的記錄;
  • adLockPessimistic在編輯一條記錄時鎖定它;
  • adLockOptimstic調(diào)用記錄集Update方法時才鎖定記錄;
  • adLockBatchOpeimstic記錄只能成批更新。
<!--#INCLUDE VIRTUAL="/ADOVBS.INC" -->  
<%  
connectme="DSN=xur;uid=xur;pwd=xur"  
sqltemp="select * from publishers where name="xur""  
set rstemp=Server.CreateObject("adodb.Recordset")  
rstemp.open sqltemp, connectme, adOpenStatic,adLockOptimstic  
response.write rstemp.recordcount & " records in<br>" & sqltemp  
rstemp.close  
set rstemp=nothing  
%> 

7、避免在使用global.asa文件中進行對象定義

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

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

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

這樣就可以在站點任何代碼中做類似引用:

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

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

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

然后在站點也面中進行如下引用:

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

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

解決方法:

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

<!--#INCLUDE VIRTUAL="/define.asp" -->
在進行頁面引進時,最好在待引進的asp文件中不要包含<%@LANGUAGE="VBSCRIPT"%>語句。因為在asp文件中,只能有一句由@來定義的腳本解析語言。

8、安全防護

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

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

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

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

標簽: ASP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美中文字幕一区二区三区| 色爱综合网欧美| 久久九九精品| 色一区二区三区| 成人小电影网站| 中文字幕一区久| 91精品啪在线观看国产18| 伊人久久大香线蕉av不卡| 精品一区三区| 中文字幕av亚洲精品一部二部 | 国产激情在线播放| 日韩av专区| 偷拍欧美精品| 亚洲一区二区三区免费在线观看 | 免费一级欧美片在线观看网站| 精品五月天堂| 午夜免费一区| 日本少妇一区二区| 精品国产第一福利网站| 99精品99| 欧美日韩在线二区| 亚洲高清激情| 偷拍亚洲精品| 91免费精品| 鲁大师影院一区二区三区| 亚洲精品在线国产| 久久精品免视看国产成人| 另类欧美日韩国产在线| 欧美三级精品| 91免费精品国偷自产在线在线| 四虎成人av| 亚洲精品激情| 久久亚洲成人| 久久久亚洲欧洲日产| 好吊一区二区三区| 欧美国产极品| 喷白浆一区二区| 国产成人久久精品一区二区三区| 欧美日韩少妇| 日韩综合一区| 久久精品97| 蜜臀av亚洲一区中文字幕| 欧美日一区二区三区在线观看国产免| 亚洲午夜黄色| 国产美女高潮在线| 国产亚洲一区二区三区啪| 欧洲激情综合| 亚洲精品国产嫩草在线观看| 国产亚洲精品美女久久| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩午夜电影| 香蕉视频亚洲一级| 精品国产精品国产偷麻豆| 日韩av黄色在线| 红桃视频亚洲| 日韩免费福利视频| 老司机精品在线| 欧美片第1页综合| 日韩中文字幕无砖| 老牛影视一区二区三区| 电影亚洲精品噜噜在线观看| 国产精品综合| 久久国产视频网| 国产免费av国片精品草莓男男| 中文字幕av一区二区三区四区| 欧美精品激情| 免费在线观看不卡| 日韩在线a电影| 亚洲综合日韩| 好吊日精品视频| 亚洲精品网址| 六月丁香综合| 日本免费一区二区视频| 欧美天堂一区| 国产精品香蕉| 久久97视频| 久久黄色影院| 视频一区在线视频| 欧美精品影院| 国产v日韩v欧美v| 精品在线99| 深夜日韩欧美| 国产一区二区三区四区二区| 麻豆视频在线看| 中文字幕色婷婷在线视频| 99精品电影| 亚洲一区av| 日产精品一区二区| 91精品91| 国产精品亚洲二区| 香蕉久久精品| 日韩三级精品| 日本欧美不卡| 青青国产91久久久久久| 日韩成人精品一区| 中文字幕一区二区三区四区久久| 国产午夜久久av| 伊人成人网在线看| 精品黄色一级片| 噜噜噜久久亚洲精品国产品小说| 国产精品白丝久久av网站| 欧美日韩国产综合网| 久久一区国产| 在线免费观看亚洲| 在线天堂中文资源最新版| 在线观看亚洲精品福利片| 国产aⅴ精品一区二区四区| 婷婷综合一区| 激情欧美国产欧美| 精品不卡一区| 久久狠狠亚洲综合| 亚洲精品美女| 自由日本语亚洲人高潮| 精品一级视频| 深夜日韩欧美| 亚洲中午字幕| 久久五月天小说| 国产白浆在线免费观看| 国产图片一区| 日韩不卡在线观看日韩不卡视频| 婷婷精品视频| 国产精品毛片一区二区在线看| 欧美一区91| 日韩在线黄色| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产国产精品| 亚洲在线观看| 亚洲一区二区三区无吗| 免费在线看一区| 一区二区三区国产盗摄| 在线视频观看日韩| 日韩欧美精品一区| 日韩欧美一区二区三区在线观看| 国产成人精品一区二区免费看京| 国产欧美日韩精品高清二区综合区| 日韩黄色av| 麻豆免费精品视频| 美女国产一区二区三区| 久久中文字幕一区二区三区| 久久伊人久久| 91精品国产调教在线观看| 99热国内精品| 久热综合在线亚洲精品| 91欧美日韩| 欧美精选一区二区三区| 精品久久福利| 中文字幕在线官网| 日韩黄色大片| 99视频+国产日韩欧美| 亚洲尤物在线| 午夜视频一区二区在线观看| 国产精品亚洲一区二区在线观看| 国产精品观看| 桃色一区二区| 首页国产欧美久久| 国产日韩欧美三级| 在线天堂中文资源最新版| 亚洲少妇自拍| 国产精品久久国产愉拍| 天堂av在线| 欧美成人精品| 国产乱论精品| 欧美精选一区二区三区| 日韩黄色在线观看| 久久久久久色| www在线观看黄色| 综合一区av| 麻豆91精品视频| 爽好多水快深点欧美视频| 国产精品99久久免费| 欧美性感美女一区二区| 久久国产日韩欧美精品| 久久亚洲在线| 欧美激情一区| 国产亚洲精品v| 精品一区av| 欧美三区不卡| 午夜在线视频观看日韩17c| 色婷婷色综合| 国产九一精品| 日韩精品视频在线看| 在线国产一区| 久久婷婷亚洲| 在线中文字幕播放| 国产精品日本一区二区三区在线| 国产一区成人| 亚洲电影在线一区二区三区| 欧美xxxx中国| 蜜桃久久久久| 国产香蕉精品| 午夜在线一区二区| 五月婷婷亚洲| 自拍日韩欧美| 91久久黄色| 另类av一区二区| 水野朝阳av一区二区三区| 亚洲综合电影一区二区三区| 五月精品视频| 尤物网精品视频| 午夜在线一区二区|