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

首頁 > 編程 > ASP > 正文

用VB將ASP代碼封裝成DLL

2024-05-04 11:06:14
字體:
來源:轉載
供稿:網友
摘 要 主要介紹用vb將asp代碼封裝成dll以保護 asp代碼和加快asp代碼的執行速度、節省服務器的資源
關鍵詞 asp,dll,編程
一、引言
server端的腳本運行環境,它簡單易用,不需要編譯和連接,腳本可以在 server端直接運行,并且它支持多用戶、多線程,在 中得到了廣泛的應用。服務器端的組件有別于客戶端的組件。客戶端的組件是通過網絡傳輸,依靠html來起作用,而且只能在ie上有用。但是服務器端的組件是運行在服務器端,它在服務器上執行各種操作。因此,所有的瀏覽器都能享用,它依靠的是服務器而不是瀏覽器。但是,因為 asp腳本是純文本格式,所以惡意者通過源代碼可以很容易地看到原本不該看到的頁面內容。因此,保護asp源代碼顯得非常重要。將asp代碼封裝成dll,不僅加快了asp代碼的執行速度,而且也能保護原代碼。當iis被請求執行一個asp程序,它首先會在asp文件中找到<% %>標簽之間的代碼,并且執行它(也可以是<script runat=server></script>之間的代碼)。如果這個asp程序在先前被調用過,那么它就會用內存中的編譯過的程序來向用戶返回html代碼,如果沒有,那么它就重新編譯。這樣就大大節省了服務器的資源。
二、實現方法
啟動你的vb,選擇activex圖標。這個圖標可以在新建工程找到!vb會提供一個默認的工程名(project1)和類名(class1)。在動手之前請首先確認我們擁有microsoft activex data object 2.0 library,它在我們的程序非常有用。從菜單中選擇"工程",然后在其中選擇"引用",就會出現"引用"窗口從中選擇microsoft activex data object 2.0 library。
現在我們有了我們自己的工程(project1)和類名(class1)。以后我們就會在asp代碼中使用它們的名字來引用這個組件。在asp中我們就這樣引用,如下:
set objreference = server.createobject("projectname.classname")
為了在類中使用asp的方法,你必須在此類中寫上初始和終止這兩個函數。輸入如下代碼:程序清單中class1.cls中的private sub class_initialize()和private sub class_terminate()。
將asp代碼中的關鍵功能制作成動態鏈接庫(.dll),部分隱藏 asp源代碼。 例如:程序清單中的global.bas和class1.cls中輸入的代碼(代碼的主要功能是檢索數據庫中的記錄并顯示出來)。
在vb的下拉菜單中選擇文件→生成article.dll→選擇要保存的目錄。找到article.dll將其復制到系統盤system32文件夾中,最后一步注冊dll文件。在開始菜單中選擇運行輸入regsvr32 c:/winnt/system32/article.dll。
三、程序清單
global.bas中的代碼:
public objcontext as objectcontext
public application as asptypelibrary.application
public server as asptypelibrary.server
public session as asptypelibrary.session
public response as asptypelibrary.response
public request as asptypelibrary.request
class1.cls中的代碼:
private sub class_initialize()
on error resume next
set objcontext = getobjectcontext
set application = objcontext.item("application")
set server = objcontext.item("server")
set session = objcontext.item("session")
set request = objcontext.item("request")
set response = objcontext.item("response")
end sub
private sub class_terminate()
on error resume next
set application = nothing
set server = nothing
set session = nothing
set request = nothing
set response = nothing
set objcontext = nothing
end sub
public sub aspclassinit()
on error goto err
set conn = server.createobject("adodb.connection")
strcon = "provider=microsoft.jet.oledb.4.0;" & _
"data source=" & server.mappath("article.mdb")
conn.open strcon
set rs = server.createobject("adodb.recordset")
sql = "select * from article order by articleid desc"
rs.open sql, conn, 1, 1
response.write "<html>" & vbcrlf
response.write "<head>" & vbcrlf
response.write "<meta http-equiv=""content-type"" content=""text/html; charset=gb2312"">" & vbcrlf
response.write "<title>文章管理系統-csstudio</title>" & vbcrlf
response.write "</head>" & vbcrlf
response.write "<body bgcolor=""#ffffff"" topmargin=""0"">" & vbcrlf
response.write "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""0"">" & vbcrlf
response.write " <tr>" & vbcrlf
response.write " <td width=""742"" height=""20"">文章標題</td>" & vbcrlf
response.write " <td width=""90"">點擊</td>" & vbcrlf
response.write " <td width=""145"">添加日期</td>" & vbcrlf
response.write " </tr>" & vbcrlf
response.write "</table>" & vbcrlf
while not rs.eof and rows < rs.pagesize
response.write "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbcrlf
response.write " <tr>" & vbcrlf
response.write " <td width=""747"" height=""20"">☆<a href=""view.asp?id="
response.write rs("articleid")
response.write """>" & vbcrlf



|||response.write " "
response.write rs("標題")
response.write "</a></td>" & vbcrlf
response.write " <td width=""94"">"
response.write rs("點擊")
response.write "</td>" & vbcrlf
response.write " <td width=""148"">"
response.write rs("添加日期")
response.write "</td>" & vbcrlf
response.write " </tr>" & vbcrlf
response.write "</table>" & vbcrlf
rs.movenext
wend
response.write "</body>" & vbcrlf
response.write "</html>" & vbcrlf
rs.close
set rs = nothing
conn.close
set conn = nothing
exit sub
err:
if err.number = -13572468 then exit sub
resume next
end sub
使用article.dll后的index.asp中的代碼:
<%dim asptransbuilderobject
set asptransbuilderobject = server.createobject("article.class1")
asptransbuilderobject.aspclassinit
set asptransbuilderobject = nothing%>
使用article.dll前的index.asp中的代碼:
<% set conn=server.createobject("adodb.connection")
strcon = "provider=microsoft.jet.oledb.4.0;" & _
"data source=" & server.mappath("article.mdb")
conn.open strcon %>
<% set rs = server.createobject ("adodb.recordset")
sql="select * from article order by articleid desc"
rs.open sql, conn,1,1 %>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>文章管理系統-csstudio</title>
</head>
<body bgcolor="#ffffff" topmargin="0">
<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr>
<td width="742" height="20">文章標題</td>
<td width="90">點擊</td>
<td width="145">添加日期</td>
</tr>
</table>
<% while not rs.eof and rows<rs.pagesize %>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="747" height="20">☆<a href="view.asp?id=<% = rs("articleid") %>">
<% =rs("標題") %></a></td>
<td width="94"><% = rs("點擊") %></td>
<td width="148"><% = rs("添加日期") %></td>
</tr>
</table>
<% rs.movenext
wend %>
</body>
</html>
<% rs.close
set rs=nothing
conn.close
set conn=nothing %>
四、結論
因為這些代碼是在服務器端運行的,所以客戶端不需要安裝任何東西。這僅僅是用activex dll所能實現的功能的小小的例子。你們可以寫好自己的更大的組件,而且還可以用vb中的很多控件。讓我們用組件來擴展我們的程序的功能吧!也希望多多的看到我們中國人的組件。但愿本文能起到拋磚引玉的作用。
參考文獻
1.david buser,john kauffman等. asp 3初級編程.北京:機械工業出版社,2001
2.richard anderson chris blexrud等. asp 3高級編程. 北京:機械工業出版社,2000
3.alex homer. asp3.0專業web技術.北京:人民郵電出版社,2000

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区二区在线| 国产精品欧美在线| 日韩成人av在线播放| 国内揄拍国内精品| 欧美激情久久久久| 国产视频久久久久久久| 精品亚洲一区二区三区| 欧美日韩一区二区免费在线观看| 日韩在线小视频| 国产精品99久久久久久www| 久久久久久亚洲精品中文字幕| 国产日韩精品在线播放| 日本久久久久久久| 国产精品99久久久久久久久| 亚洲欧美国产va在线影院| 91精品国产91久久久| 成人信息集中地欧美| 久久天天躁狠狠躁夜夜av| 国产精品盗摄久久久| 久久久久亚洲精品国产| 中文字幕精品影院| 亚洲精品永久免费| 色婷婷成人综合| 91精品久久久久久久久久另类| 成人精品视频在线| 国产精品扒开腿做爽爽爽男男| 欧美国产视频一区二区| 一二美女精品欧洲| 俺去了亚洲欧美日韩| 精品久久久视频| 亚洲精品久久久久久久久久久久久| 中文字幕日韩精品在线| 91av成人在线| 国产一区二区三区丝袜| 日韩国产精品亚洲а∨天堂免| 国产精品1234| 国产精品久久久| 欧美激情精品久久久久久变态| 精品毛片网大全| 国产精品极品美女在线观看免费| 国产成人亚洲综合91精品| 欧美日韩成人免费| 2019中文字幕在线| 久久青草精品视频免费观看| 欧美性猛交xxx| 久久久午夜视频| 国产日韩欧美电影在线观看| 久久久天堂国产精品女人| 亚洲第一二三四五区| 日韩精品视频观看| 97久久超碰福利国产精品…| 日韩欧美成人精品| 欧美大胆a视频| 欧美成人精品在线观看| 欧美丰满少妇xxxxx做受| 欧美人交a欧美精品| 欧美日韩加勒比精品一区| 欧美日韩亚洲一区二区三区| 九九综合九九综合| 国产精品嫩草影院一区二区| 日韩网站免费观看| 成人亚洲欧美一区二区三区| 91精品国产自产在线观看永久| 亚洲国产成人精品久久久国产成人一区| 欧美—级a级欧美特级ar全黄| 国产精品色视频| 日韩在线中文视频| 91老司机精品视频| 日韩视频免费大全中文字幕| 精品高清美女精品国产区| 欧美中文字幕在线观看| 亚洲天堂av在线免费观看| 国产香蕉一区二区三区在线视频| 亚洲va码欧洲m码| 午夜精品三级视频福利| 国产日韩中文字幕在线| 国产精品欧美一区二区三区奶水| 91国内揄拍国内精品对白| 亚洲成人精品久久| 午夜精品美女自拍福到在线| 欧美天天综合色影久久精品| 成人免费观看网址| 国产ts人妖一区二区三区| 国产中文日韩欧美| 欧美日本啪啪无遮挡网站| 亚洲一区二区三区xxx视频| 色婷婷久久av| 国产成人精品久久| 久久久久久久国产| 精品国产一区二区三区久久狼5月| 91国语精品自产拍在线观看性色| 国产精品吴梦梦| 精品国产鲁一鲁一区二区张丽| 91超碰中文字幕久久精品| 中文字幕日韩精品有码视频| 日韩欧美在线免费| 不卡中文字幕av| 欧美日韩国产精品专区| 视频在线观看一区二区| 国产精品对白刺激| 动漫精品一区二区| 日韩在线免费av| 久久中国妇女中文字幕| 97视频在线观看亚洲| 亚洲国产精品热久久| 久久久视频在线| 亚洲视频在线观看视频| 亚洲第一福利视频| 国产亚洲精品综合一区91| 精品无人国产偷自产在线| 国产性猛交xxxx免费看久久| 欧美性感美女h网站在线观看免费| 国外日韩电影在线观看| 日本亚洲精品在线观看| 91精品久久久久久久久久入口| 亚洲码在线观看| 成年无码av片在线| 国产精品十八以下禁看| 午夜精品www| 欧美在线观看网站| 亚洲人成在线观看| 欧美巨猛xxxx猛交黑人97人| 日韩免费不卡av| 精品久久久久久久中文字幕| 日本国产高清不卡| 国产欧美日韩最新| 国产精品一二三视频| 久久久久久久久久亚洲| 国产精品一香蕉国产线看观看| 亚洲精品欧美日韩| 亚洲国产一区二区三区四区| 亚洲人成网站999久久久综合| 最近2019年手机中文字幕| 久久久国产视频91| 久久91精品国产91久久久| 中文字幕av一区中文字幕天堂| 性亚洲最疯狂xxxx高清| 欧美另类在线观看| 国产精品成av人在线视午夜片| 一本色道久久综合狠狠躁篇的优点| 亚洲精品动漫100p| 久久久国产精彩视频美女艺术照福利| 欧美成人午夜免费视在线看片| 狠狠躁夜夜躁人人爽天天天天97| 97色在线观看免费视频| 国产精品三级在线| 日韩专区在线观看| 日韩免费观看在线观看| 成人伊人精品色xxxx视频| 91丨九色丨国产在线| 乱亲女秽乱长久久久| 欧美高清视频在线| 久久综合九色九九| 欧美视频在线观看 亚洲欧| 一区二区在线视频| 91在线观看免费| 视频在线观看99| 亚洲精品女av网站| 日本久久久久久久| 国产成人亚洲综合91精品| yw.139尤物在线精品视频| 欧美亚洲另类制服自拍| 久久久国产视频91| 国产精品爽爽爽爽爽爽在线观看|