狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

XML在ASP中的一些運用

XML在ASP中的一些運用

更新時間:2019-06-28 文章作者:未知 信息來源:網絡 閱讀次數:


翻譯得很蹩腳,望大家諒解,呵呵。
Scriptlets - 一個更好的組織你的ASP代碼的方法

使用可擴展標志語言(XML)編寫的腳本和組件和.XML被用來定義對象,方法,屬性等等。
同時腳本還提供函數。腳本語言可以是javascript, vbscript等等。運用在網站的運用程序和網站的
普通例子,現在都可以被轉換成scriptlets. 只要使用scriptlets 來寫組件,
他們可以再被從新使用在網站或則運用程序各部分,既可以使用在服務端(例如ASP代碼)
也能夠被使用在客戶端(例如瀏覽器)

這里將集中討論服務端的用來組件ASP代碼的Scriptlets。
早些時候,ASP開發者習慣寫include文件。用來做公共的服務端例行程序,
還用在他們的網站運用程序中。從功能上說,include文件被局限在僅僅是在頁面中引用。
完成傳遞參數的功能。
現在同樣的公共例行程序能夠中添加了scriptlet方法和并且有助與在運用程序中使用組件。
這個方法現在非常普遍的運用在網站運用程序中,能夠被運行在同一個服務器上的運用程序重用。
這個方法使得從數據庫中獲取(pull-down)數據將變得非常通俗化。

例子:建立scriptlet方法和屬性,使得很通俗的從數據庫中獲取數據。
并且使得運行在同一個服務器上所有的運用程序使用這個同樣的scriptlet,而不用重新寫代碼了。

代碼如下:
scriptlet文件名為scp_query2list.sct

<?XML version="1.0"?>
<scriptlet>
<registration
description="scp_query2list"
progid="scpquery2list.Scriptlet"
version="1.00"
classid="{e32d2a70-4e11-11d3-a9f0-0080c8034244}"
>
</registration>

<public>
<method name="query2list">
<PARAMETER name="objConn"/>
<PARAMETER name="query"/>
</method>
</public>

<implements type="ASP" id="ASP"/>
<script language="VBScript">

<![CDATA][
Sub query2list(objConn, query)
Dim objRs
Set objRs = objConn.Execute(query)
If objRs.EOF AND objRs.BOF Then
Response.write "<option value='none'>沒有找到記錄。</option>"
Else
Do While Not objRs.EOF
Response.write "<option value='" & objRS(0) & "'>" & objRs(0) & "</option>"
objRs.MoveNext
Loop
End If
objRS.Close
Set objRS = nothing
End Sub
]]>

</script>
</scriptlet>
其中在scriptlets中使用的各種元素的具體說明可以在http://msdn.microsoft.com/scripting處找到。
下面是怎么具體調用scriptlets的代碼:(只要是在同一個服務器上注冊了scriptlets的運用程序,都可以使用這段代碼)
query2list.asp 文件:
<%@ Language=VBScript %>
<%

Option Explicit

Dim objConn
Dim dbPath
Dim sql
Dim objScpQuery2list

Set objConn = Server.CreateObject ("ADODB.Connection")
dbPath="DBQ=" & Server.MapPath("techpapers_test.mdb")

objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & dbPath

'--- query required for pull down
sql = "select AuthorFirst from Papers"
Set objScpQuery2list = Server.CreateObject ("scpquery2list.Scriptlet")
%>
<html>
<body>
<center>
<form name = "fr1">
<select>
<option value="none" selected>選擇發行人</option>
<% call objScpQuery2list.query2list(objConn, sql) %>
</select>
</form>
</center>
</body>
</html>

<%
objConn.Close
Set objConn = nothing
Set objScpQuery2list = nothing
%>

出現的問題:
第一次使用scriptlets有可能會出現這樣的問題,就是內存浪費現象,改進方法如下:
將ASP對象傳遞給scriptlets,而代替使用ASP接口。(就是不使用 <implements type="ASP" id="ASP"/>申明)
testscp.sct:
<?XML version="1.0"?>
<scriptlet>
<?scriptlet error="true" debug="true"?>
<registration
description="testscp"
progid="testscp.Scriptlet"
version="1.00"
classid="{78a33aa0-335d-11d3-a9a9-0080c8034244}"
>
</registration>

<public>
<property name="cnnState">
<get/>
</property>
<method name="TestWrite">
<parameter name="sHTML"/>
</method>
<method name="TestWriteLine">
<parameter name="sHTML"/>
</method>
<method name="ASPConnect">
<parameter name="oServer"/>
<parameter name="oApplication"/>
<parameter name="oSession"/>
<parameter name="oRequest"/>
<parameter name="oResponse"/>
</method>
</public>
<script language="VBScript">
<![CDATA][
Private cnnState, Server, Application, Session, Request, Response
cnnState = False

Function get_cnnState()
get_cnnState = cnnState
End Function

Sub ASPConnect(oServer, oApplication, oSession, oRequest, oResponse)
Set Server = oServer
Set Application = oApplication
Set Session = oSession
Set Request = oRequest
Set Response = oResponse
cnnState = True
End Sub

Sub TestWrite(sHTML)
Response.Write sHTML
End Sub

Sub TestWriteLine(sHTML)
Response.Write sHTML & "<BR>"
End Sub
]]>

</script>
</scriptlet>

傳遞ASP對象的ASP程序如下:
testscp.asp代碼

<%
Set scrip=Server.CreateObject("testscp.Scriptlet")
if Err then
Response.Write "<BR>Error:" & Err.Number
Response.Write "<BR>" & Err.Description
Response.Write "<BR>" & Err.Source
Response.End
End If

Response.Write "<BR> cnnState=" & scrip.cnnState
if Err then
Response.Write "<BR>Error:" & Err.Number
Response.Write "<BR>" & Err.Description
Response.Write "<BR>" & Err.Source
Response.End
End If

Response.Write "<BR>Connecting..."
scrip.ASPConnect Server, Application, Session, Request, Response
if Err then
Response.Write "<BR>Error" & Err.Number
Response.Write "<BR>" & Err.Description
Response.Write "<BR>" & Err.Source
Response.End
End If

Response.Write "<BR>cnnState=" & scrip.cnnState & "<BR>"
Response.Write "<BR>Testing ...Write<BR>"

scrip.TestWriteLine ""
scrip.TestWrite "This is the first part "
scrip.TestWrite "and this is the second."

Response.Write "<BR>Testing ...WriteLine<BR>"
scrip.TestWriteLine "This is text with a line break."
scrip.TestWriteLine "And so is this."
%>
上面的代碼沒有包括<implement type = "ASP"/>, 但是仍然可以訪問ASP對象。
因為他們是被當成對象傳遞給scriptlet.
下面再給出一個很常用的取時間的貍子:

scp_dmy.sct
<?XML version="1.0"?>
<scriptlet>

<?scriptlet error="true" debug="true"?>

<registration
description="scp_dmy"
progid="scpdmy.Scriptlet"
version="1.00"
classid="{bba68a50-3ae0-11d3-a9c0-0080c8034244}"
>
</registration>

<public>
<method name = "option_num">
<PARAMETER name = "num"/>
</method>
<method name = "option_month">
</method>
<method name = "option_year">
</method>
</public>

<implements type="ASP" id="ASP"/>
<script language="VBScript">

<![CDATA][
Sub option_num(num)
For i = 1 to num
If i<10 Then
x = 0 & i
Else
x = i
End If
Response.write "<option value = " & x & ">" & x & "</option>"
Next
End Sub

Sub option_month()
For i = 1 to 12
If i<10 Then
x = 0 & i
Else
x = i
End If
Response.write "<option value = " & x & ">" & MonthName(x,True) & "</option>"
Next
End Sub

Sub option_year()
For i = -1 To 3
yy = year(DateAdd("yyyy",i,Date()))
Response.write "<option value = " & yy & ">" & yy & "</option>"
Next
End Sub

]]>
</script>

</scriptlet>

Dmy_check.asp: 文件
<%
Set scrip = Server.CreateObject("scp_dmy.Scriptlet")
%>

<html>
<head></head>
<body>

<form name = "form1">
從 :
<select name = "D1">
<option value="">dd</option>
<% call scrip.option_num(31) %>
</select>

<select name = "M1">
<option value="">mm</option>
<% call scrip.option_month() %>
</select>

<select name = "Y1">
<option value="">yy</option>
<% call scrip.option_year() %>
</select>
<BR><BR>

到 :
<select name = "D2">
<option value="">dd</option>
<% call scrip.option_num(31) %>
</select>


<select name = "M2">
<option value="">mm</option>
<% call scrip.option_month() %>
</select>

<select name = "Y2">
<option value="">yy</option>
<% call scrip.option_year() %>
</select>
</form>

<%
Set scrip = nothing
%>

</body>
</html>
要記住的是,現在服務器上所有的程序都能夠使用這個scriptlet,這能夠減少include文件的使用。
上面的代碼還能夠增加一些功能,例如使用不同的格式顯示日期。
也就是說如果一個運用程序需要顯示dd-mm-yyyy的日期格式,可以在scriptlet中調用各自的函數。

最后,使用scriptlet的還有一個好處就是,它不象真正的ASP組件,因為真正的ASP組件在注冊和取消注冊的
時候都需要你重新啟動IIS,而使用scriptlet是不需要這么干的,僅僅是幾句代碼而已。
(出處:熱點網絡)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
欧美亚洲日本国产| 国产精品激情| 国产精品夜夜嗨| 日韩欧美视频在线| 欧美日韩在线三区| 免费看亚洲片| 久久久久se| 久久深夜福利| 91国产福利在线| 欧美性大战久久久久久久蜜臀| 久久精品国产第一区二区三区最新章节 | 欧美成人免费网站| 欧美成人一区二区三区片免费| 日韩一区二区三区视频| 欧美va亚洲va香蕉在线| 国产午夜亚洲精品不卡| 国产欧美精品区一区二区三区| 国产精品日日摸夜夜摸av| 亚洲男人的天堂在线aⅴ视频| 亚洲特黄一级片| 日韩有码一区二区三区| 捆绑紧缚一区二区三区视频| 国产精品一区二区男女羞羞无遮挡 | 国产精品短视频| 亚瑟在线精品视频| 国产精品自拍三区| 欧美日韩精品免费观看视频完整 | 久久青草国产手机看片福利盒子 | 免费成人美女在线观看.| 蜜臀av性久久久久蜜臀av麻豆| 国产精品亚洲一区二区三区妖精| 女女同性精品视频| 亚洲综合二区| 日韩一区二区麻豆国产| 日本一区二区三级电影在线观看 | 亚洲综合激情| 在线成人午夜影院| 国产精品乱码一区二三区小蝌蚪| 亚洲一区在线免费观看| 国产一区二区在线影院| 欧美日韩在线观看一区二区三区| 免费中文字幕日韩欧美| 日韩欧美色综合网站| 亚洲婷婷综合久久一本伊一区 | 欧美性感一区二区三区| 久久久久久黄色| 午夜久久福利影院| www.亚洲人| 久久国产日韩欧美| 久久久亚洲国产美女国产盗摄 | 亚洲国产一区二区在线| 欧美少妇bbb| 亚洲天堂av一区| 国产mv日韩mv欧美| 国产一区二区高清| 久久亚洲欧美国产精品乐播| 午夜精品国产更新| 91丝袜美女网| 欧美日韩久久久一区| 亚洲视频一区二区在线观看| 国产精品一品视频| 欧美一级二区| 中文字幕高清不卡| 国产a区久久久| 欧美一级二区| 中文字幕日韩一区二区| 成人小视频免费在线观看| 亚洲欧美bt| 国产精品久久久久久久裸模| 国产成人免费在线视频| 久久伊人亚洲| 亚洲视频中文字幕| 午夜精品网站| 日韩欧美一区二区在线视频| 美女一区二区在线观看| 性一交一乱一区二区洋洋av| 国产精品国产三级国产aⅴ中文| 国产v日产∨综合v精品视频| 91久久一区二区| 亚洲va欧美va天堂v国产综合| 亚洲一区在线免费| 国产女主播一区| caoporn国产精品| 欧美一级黄色大片| 久久精品国产成人一区二区三区| 亚洲欧美成人| 一区二区三区 在线观看视频| 欧美日韩国产免费观看| 精品美女被调教视频大全网站| 久久国产尿小便嘘嘘尿| 色婷婷亚洲综合| 日韩黄色在线观看| 久久精品道一区二区三区| 亚洲成av人片观看| 国产精品区一区| 一区二区欧美国产| 99视频一区| 亚洲资源中文字幕| 国产精品乱子乱xxxx| 亚洲天堂网中文字| 亚洲国产精品久久久久婷婷老年| 中文字幕在线视频一区| 国内精品久久久久国产盗摄免费观看完整版| 日韩美一区二区三区| www.欧美.com| 久久精子c满五个校花| 91丨porny丨最新| 国产精品区一区二区三区| 黄色另类av| 一区二区三区国产豹纹内裤在线| 99国产精品视频免费观看一公开| 亚洲欧美激情一区二区| 亚洲欧美日韩专区| 老司机精品视频导航| 91麻豆精品久久久久蜜臀| 粉嫩嫩av羞羞动漫久久久 | 国产精品无码永久免费888| 在线播放不卡| 日韩精品视频网| 欧美一激情一区二区三区| 99免费精品视频| 国产精品激情偷乱一区二区∴| 日韩亚洲欧美精品| 日韩av一区二区在线影视| 欧美日韩在线直播| av成人动漫在线观看| 国产精品全国免费观看高清| 香蕉久久夜色精品国产| 久久精品国产澳门| 国产亚洲欧洲997久久综合 | 日韩一区二区免费在线观看| 欧美精品福利| 日产国产欧美视频一区精品| 欧美一区二区网站| 午夜久久影院| 日本怡春院一区二区| 精品国精品自拍自在线| 亚洲国产成人不卡| 精品一区二区三区久久| 久久久精品2019中文字幕之3| 国产欧美高清| 国产成人精品亚洲午夜麻豆| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲理论在线| 韩国女主播一区| 亚洲天堂精品在线观看| 欧美性做爰猛烈叫床潮| 91麻豆.com| 毛片av一区二区| 欧美激情在线一区二区三区| 91久久精品一区二区三| 欧美国产精品| 激情欧美一区二区三区在线观看| 中文在线资源观看网站视频免费不卡 | 狠狠色丁香久久婷婷综合_中| 欧美国产国产综合| 欧美另类videos死尸| 国产综合视频| 国产成人小视频| 天堂成人国产精品一区| 国产欧美日韩三级| 欧美精品免费视频| 亚洲伦理一区| 91一区二区在线观看| 久久91精品久久久久久秒播| 综合久久国产九一剧情麻豆| 日韩一区二区在线免费观看| 美女精品在线观看| 欧美午夜一区| 成人免费视频一区二区| 日本不卡视频在线观看| 亚洲精品菠萝久久久久久久| 久久婷婷国产综合国色天香| 777色狠狠一区二区三区| 国产女主播一区二区三区| 欧美成人一区二免费视频软件| 精品一区二区三区影院在线午夜| 悠悠色在线精品| 欧美激情一区二区三区在线| 日韩欧美中文字幕精品| 欧美三级一区二区| 色一情一伦一子一伦一区| 亚洲国产三级| 黄色av日韩| 欧美日韩国产高清视频| 成人高清在线视频| 国产精品系列在线播放| 欧美aⅴ一区二区三区视频| 亚洲国产精品久久不卡毛片| 中文字幕在线不卡| 国产日韩欧美一区二区三区乱码| 欧美成人艳星乳罩| 5858s免费视频成人| 欧美午夜在线一二页| 色狠狠色噜噜噜综合网| 色悠悠久久综合| 色婷婷精品久久二区二区蜜臂av| 西西人体一区二区| 久久aⅴ国产紧身牛仔裤| 亚洲尤物在线|