久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來,internet一定要實(shí)現(xiàn)!

ASP服務(wù)器組件的編程

2004-02-16 eNet&Ciweek

  ASP(Active Server Page)是當(dāng)今開發(fā)交互式Web頁面、Web數(shù)據(jù)庫應(yīng)用最強(qiáng)大的技術(shù)。在其中可以混用HTML、DHTML、ActiveX、VBScript或JavaScript。當(dāng)這些技術(shù)都無法奏效時(shí)(例如進(jìn)行高密度的數(shù)學(xué)運(yùn)算、封裝特定的數(shù)據(jù)庫處理邏輯等),可以使用服務(wù)器組件(Server SideComponent)進(jìn)一步擴(kuò)展ASP的能力。
  Server SideComponent實(shí)際上是運(yùn)行在服務(wù)器上的一個(gè)DLL,它可以完成常規(guī)DLL所能勝任的任何任務(wù)。不同之處是:它由ASP頁面調(diào)用、并以Web頁面為交互對(duì)象,讀入用戶的輸入(Web頁面上各輸入域的值),處理后返回結(jié)果到Web頁面。這些交互當(dāng)然都要通過Web服務(wù)器作為中介??梢杂肰B、VFP、VC++、C++Builder、Delphi等任意支持COM技術(shù)的語言編寫。由于它可以利用服務(wù)器的任何資源,其功能僅受限于你的想象力。
  目前支持ASP的Web服務(wù)器有IIS(Internet Information Server,WinNT Server4.0自帶)和PWS(Personel Web Server,用于Win95環(huán)境)。并要求安裝VisualInterDev中的Server Components:FrontPage Server Extensions、 Active ServerPages和Client Components:Visual InterDevClient??梢园堰@些都安裝在同一臺(tái)機(jī)器上,這樣可以在單機(jī)上方便地編程、調(diào)試。
  下面用VB5.0開發(fā)一個(gè)Server Side Component(一個(gè)ActiveXDLL),以實(shí)現(xiàn)Web頁面上的隨機(jī)圖形顯示,相信它會(huì)為你的站點(diǎn)增色不少。
  
  2. Web頁面上的隨機(jī)圖形顯示
  
  一個(gè)漂亮的圖形可以使Web頁面更具吸引力,使人流連忘返。但一旦我們的Web頁面設(shè) 計(jì)完成,這個(gè)圖形也就確定下來。換言之,除非我們重新修改HTML代碼,則每次打開這個(gè)頁面,看到的都是同樣一個(gè)圖形。那么能否讓用戶在每次進(jìn)入我們的站點(diǎn)時(shí),都能看到不同的畫面呢?例如:每次這個(gè)Web頁面被訪問時(shí),從一個(gè)包含若干圖形文件的文件夾中隨機(jī)選取一個(gè),在該頁面上顯示,使訪問該頁面的用戶每次都會(huì)得到不同的視覺享受。
  這個(gè)要求用HTML、DHTML或VBScript語言無法做到,這里我們用一個(gè)ASP服務(wù)器組件實(shí)現(xiàn)之。
  
  3.用VB5.0建立ActiveX DLL
  
  首先在VB5.0中新建一個(gè)Project ,類型為ActiveX DLL :設(shè)定屬性如下:
  Project Name:RandShowFile,
  ClassModule Name:Randimage
  其中類Randimage的代碼如下:
  Option Explicit
  Private mvarFilePath As String 'local copy
  Public Property Let FilePath(ByVal vData As String)
  '設(shè)置文件路徑
  If Right(vData, 1) = "/" Or Right(vData, 1) = "\" Then
  mvarFilePath = vData
  Else
  If InStr(vData, "/") <> 0 Then
  mvarFilePath = vData & "/"
  Else
  mvarFilePath = vData & "\"
  End If
  End If
  End Property
  
  Public Property Get FilePath() As String
  '取得文件路徑
  FilePath = mvarFilePath
  End Property
  
  Private Sub Class_Initialize()
  mvarFilePath = ""
  End Sub
  
  Public Function Show(Optional ByVal Extension As String) As String
  '從指定文件路徑中隨機(jī)選取并返回一個(gè)文件名
  Dim MyPath As String
  Dim MyName As String
  Dim List() As String
  Dim FileCount As Integer
  Dim n As Integer
  On Error GoTo badnews
  If Len(mvarFilePath) <= 1 Then
  Show = "NoFilePathSpecified "
  Erase List
  Exit Function
  Else
  If IsMissing(Extension) Then
  Extension = "*.*" '如果擴(kuò)展名沒有指定,則默認(rèn)為*.*
  End If
  MyPath = mvarFilePath & Trim(Extension) ' Set the path.
  MyName = Dir(MyPath, vbNormal) ' Retrieve the first entry.
  End If
  FileCount = 0
  ReDim List(10)
  Do While MyName <> ""
  List(FileCount) = MyName
  FileCount = FileCount + 1
  If FileCount >= UBound(List) Then
  n = UBound(List) + 10
  ReDim Preserve List(n)
  End If
  MyName = Dir()
  Loop
  If FileCount >= 1 Then
  Randomize ' 初始化rand()函數(shù),否則每次將產(chǎn)生相同的數(shù)字
  n = Int(FileCount * Rnd()) ' 產(chǎn)生在1 和list1.listcount 之間的隨機(jī)數(shù).
  Show = List(n)
  Erase List
  Exit Function
  Else
  badnews:
  Show = "NoFileFound"
  Erase List
  End If
  End Function
  在編譯之前,注意要在此Project中加入一個(gè)Module并在其中加入代碼
  Sub Main()
  End Sub
  然后在菜單Project   RandShowFile Projectise?引出的對(duì)話框中,設(shè)Startup
  Object為Sub Main。最后在菜單File中,選Make Randimage.dll。到此,我們的SSC
  就開發(fā)完成,并且它已自動(dòng)注冊(cè)在機(jī)器上。
  
  4.在ASP頁面中使用服務(wù)器組件
  
  下面將建立一個(gè)ASP頁面以測(cè)試我們的Server Side Component。
  啟動(dòng)Visual InterDev,開始一個(gè)新的工程:New Projects,然后選取Web Project Wizard,在Project Name中輸入TestRandimage,點(diǎn)擊OK后,Visual InterDev產(chǎn)生一些輔助文件,為新的工程做好準(zhǔn)備,然后自動(dòng)打開該工程。為了方便
  測(cè)試,拷貝幾個(gè)圖形文件到Images文件夾中,文件類型可以是瀏覽器支持的任意圖形文件,如BMP、TIF、GIF等 。
  在該工程中建立ASP頁面,點(diǎn)擊菜單File   New ,在New 對(duì)話框中選Files   Active Server Page ,并指定其名字:Randimage.asp。Visual InterDev將會(huì)為我們產(chǎn)生一個(gè)空的框架,在其中用手工加入代碼。完成后的代碼如下
 ?。?
  <%@ LANGUAGE="VBSCRIPT" %>
  
  
  
  
測(cè)試randimage 組件,隨機(jī)顯示一個(gè)圖形文件
圖形文件路徑:
  <%=server.mappath("images")%>

  <%set
  ox=server.createobject("randshowfile.randimage")'實(shí)例化組件ox.filepath=serve
  r.mappath("images")
  %>
  ">
  <%set ox=nothing '使用后釋放組件%>
  
  
  由于Web頁面使用的路徑(URL)都是虛擬路徑(Virtual Directory),必須使用server.mappath()將其轉(zhuǎn)換到物理路徑(Physical Directory)。例如,此處的圖形文件夾images的虛擬路徑是://Servername/TestRand image/Images(其中Servername是你的Web服務(wù)器的名字),其對(duì)應(yīng)的物理路徑是C:\Inetpub\wwwroot\TestRandimage\Images 。如果不把Images映射到物理路徑則組件找不到該文件夾,無法正常工作。 代碼完成后測(cè)試之,注意到在每次打開或刷新該頁面時(shí),會(huì)有一個(gè)不同的圖形顯示在上面。
  
  5.結(jié)束語
  
  使用SSC可以大大豐富Web應(yīng)用的功能、提高編程效率;完成HTML或VBScript等不易完成的任務(wù);封裝特定的商業(yè)邏輯等。Server Side Component(以及ActiveX)等組件的編程也發(fā)展成為一項(xiàng)有利可圖的事業(yè)。在Internet上可以找到很多有用的組件(免費(fèi)的或不免費(fèi)的),有興趣者可到www.15seconds.com、www.activeserverpages.com、www.serverobjects.com等站點(diǎn)上查看。如果你有一
個(gè)新穎有用的組件,也可以發(fā)表在這些站點(diǎn)上,說不定你可以因此得到一筆可觀的收入呢。


相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com