• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP講座之四:ASP內置組件

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 10次 | 進入軟件測試論壇討論

    領測軟件測試網

    前三講中,我們主要介紹了ASP提供的四大內置對象:
    Response對象:向瀏覽器發送信息。
    Request對象:訪問從瀏覽器發送到服務器的信息(如獲取表單數據)。
    Session對象:存儲、讀取特定用戶對話信息。
    Application對象:存儲、讀取所有用戶共享的應用程序信息。
        此外還有Server對象和ObjectContext對象我們將在以后的實例中學習(提示:其實不經意之間你已經可以利用所學知識編寫網上聊天室了)。本講的內容是使用ASP的ActiveX Server Components(組件)。

    一、 Browser Capabilities Component(瀏覽器能力組件):
    我們知道,不同的瀏覽器也許支持不同的功能,如有些瀏覽器支持框架,有些不支持。利用這個組件,可以檢查瀏覽器的能力,使你的網頁爭對不同的瀏覽器顯示不同的頁面(如對不支持Frame的瀏覽器顯示不含Frame的網頁)。該組件的使用很簡單,需注意的是,要正確使用該組件,必須保證Browscap.ini文件是最新的(其實每一個瀏覽器及其特性都列在這個文件中,自己打開看看就明白了),否則結果可能相去甚遠,如Win98第二版所帶的IE5.0,在下例中顯示為Netscape。這個文件一般位于Web服務器的“\Winnt\System32\InetSrv”下,最新的版本可去http://www.asptracker.com/或http://www.cyscape.com/browscap下載。
    例:wuf22.asp
    <html>
    <BODY>
    ‘注意:組件的使用與對象類似,但是組件在使用前必須先創建,而使用內置對象前不必創建。
    <%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
    請稍候......
    <P>
    <TABLE BORDER=1 CELLPADDING=10>
    <TR><TD>瀏覽器類型</TD><TD><%=BrowsCap.Browser%></TD></TR>
    <TR><TD>瀏覽器版本</TD><TD><%=BrowsCap.version%></TD></TR>
    <TR><TD>是否支持表格</TD><TD><%=BrowsCap.tables%></TD></TR>
    <TR><TD>是否支持ActiveX控件</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
    <TR><TD>是否支持JavaApplets</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
    <TR><TD>是否支持javascript</TD><TD><%=BrowsCap.javascript%></TD></TR>
    <TR><TD>是否支持Cookies</TD><TD><%=BrowsCap.Cookies%></TD></TR>
    <TR><TD>是否支持Frames</TD><TD><%=BrowsCap.Frames%></TD></TR>
    <TR><TD>操作系統</TD><TD><%=BrowsCap.Platform%></TD></TR>
    <TR><TD>是否支持VBScript</TD><TD><%=BrowsCap.vbscript%></TD></TR>
    </TABLE>
    <%Set BrowsCap = Nothing%>
    </BODY>
    </HTML>
    注意:在本例中我們也接觸了Server對象的CreateObject方法,Server.CreateObject用于創建已經注冊到服務器上的ActiveX組件(說明:還有其他方法可以創建組件)。不過別忘了用“Set 對象 = Nothing”來及時釋放資源,這應該成為一個習慣。

    二、 File Access組件
    File Access組件由FileSystemObject對象和TextStream對象組成,使用FileSystemObject對象,可以建立、檢索、刪除目錄及文件,而TextStream對象則提供讀寫文件的功能。
    實例wuf23.asp。強調:只有通過實踐才能加深理解,實踐和比較程序運行結果是快速掌握編程技巧的最好方法。
    <%@ Language=VBScript %>
    <% Option Explicit
    ' 注意絕對路徑: C:\Inetpub\home\asp\wuf23.asp  主頁路徑: C:\Inetpub\home
    Dim Path, File, FSO, CTF, Str, StrHTML, StrNoHTML

    '使用 CreateObject 方法創建 FileSystemObject 對象 FSO
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")

    Path = Server.MapPath("test")         '返回test的物理目錄(絕對路徑)
    '就本例而言, 下面這句與上面這句返回的Path完全一樣
    'Path = Server.MapPath("\asp\test\")
    Response.Write Path & "<Br>"

    If FSO.FolderExists(Path) = false then    '判斷該文件夾是否存在
    FSO.CreateFolder(Path)                '新建文件夾
    End If

    File = Path & "\asptest.txt"
    ' 寫文件操作
    If FSO.FileExists(File) = True Then                '判斷該文件是否存在
    '建立 TextStream 對象 CTF
      Set CTF = FSO.OpenTextFile(File, 8, False, 0)    '打開文件, 詳見說明
    Else
      Set CTF = FSO.CreateTextFile(File,False, False)  '新建文件
    End If
    CTF.Write "<P>第一個字符串; "              '寫字符串
    CTF.WriteLine "第二個字符串; "             '寫字符串, 并加上一個換行符
    CTF.Write "第三個字符串; "
    CTF.Close                                  '注意要關閉文件

    ' 讀文件操作
    Set CTF = FSO.OpenTextFile(File, 1,,0)
    Do While CTF.AtEndOfStream <> True         '判別是否文件結尾(循環語句)
      Str = CTF.ReadLine                       '(每次)讀取一行
      StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf  
      StrHTML = StrHTML & Server.HTMLEncode(Str) & "<BR>" & VbCrLf
    Loop
    Response.Write StrNoHTML
    Response.Write StrHTML

    CTF.Close
    Set CTF = Nothing   '釋放對象
    Set FSO = Nothing
    %>
    CTF = FSO.OpenTextFile(File, 8, False, 0),括號內第一個參數為文件名;第二個參數為8,表示在原文件后追加內容,若為1表示只讀,為2則會重寫原文件;第三個參數false表示,若指定文件不存在,也不新建文件,若為True,表示指定文件不存在,則新建該文件;第四個參數0表示以ASCII文件格式打開,若為-2,則表示以原來的格式打開。
    CTF = FSO.CreateTextFile(File,False, False),第二個參數false表示不覆蓋已有文件,若為True,則表示覆蓋(OverWrite)已有文件;第三個參數為False表示文件格式為ASCII,為True表示文件格式為Unicode。
    Server對象的MapPath方法將指定的虛擬路徑轉換為真實的文件路徑。MapPath將“/”和“\”字符視為相同。
    Server對象的HTMLEncode方法允許你對特定的字符串進行HTML編碼,或者說使瀏覽器中可以正確顯示特定的字符。上例中,若未編碼,則“<P>”顯示不出來,而是被瀏覽器作為HTML標記,你可以對比一下運行結果。
    實際上,File Access組件對文件、文件夾和驅動器的操作還是比較強大的,也提供了較多的方法,如果需要用到這方面的知識,別忘了使用它。
    另外,到現在為止,寫一個網頁計數器已經是小菜一碟了吧,難怪那么多的網頁提供免費計數器。怎么樣?自己寫一個圖形計數器試試看,想怎么作弊就怎么作弊,完全自己說了算,爽呆。ㄐ∶孛埽何业闹黜撋嫌袑嵗齱uf24.asp)

    三、 AD Rotator(廣告翻轉組件)
    現在上網,恐怕最討厭的是別人主頁上的廣告條,最喜歡的是自己主頁上的廣告條,廣告條如同垃圾郵件一樣,比比皆是,防不勝防。你也可以自己動手制造這樣的垃圾,ASP的AD Rotator組件就可使每次打開或者重新加載網頁時,隨機的顯示廣告。這個例子包括三部分:
    例程wuf25.asp
    <%@ Language=VBScript %>
    <% Option Explicit
    Dim adr
    '創建 AD Rotator 對象
    Set adr = Server.CreateObject("MSWC.AdRotator")
    adr.Border = 2              '指定圖形文件的邊框大小
    adr.Clickable = True        '指示顯示的圖片是否是一個超鏈接
    adr.TargetFrame = "_blank"  '設置超鏈接是否要指定Frame名稱,如: _TOP _NEW _PARENT
    '獲取將要顯示的圖片及超鏈接設置 - 在文件 AdrSet.txt 中設置
    Response.Write adr.GetAdvertisement("AdrSet.txt")
    %>
        AdrSet.txt內容(后面為注釋,不是這個文件的內容):
    REDIRECT wuf26.asp      點擊廣告后,轉由wuf26.asp來處理
    WIDTH 468               廣告圖片寬度
    HEIGHT 60               廣告圖片高度
    *                       分隔符
    /Article/UploadFiles/200411/20041106021149251.gif
    http://www.canon.com.cn/
    佳能
    50
    本例中一共有三個圖片(圖片大小468X60)及鏈接,每個鏈接的描述占四行,實際使用時,你可如法炮制,增加更多的圖片。
    <%  ‘wuf26.asp
      URL = Request.QueryString("url")
    Response.Redirect(URL)
    %>
    wuf26.asp是一個最簡單的處理程序,你可根據實際需要在這里加入更多的代碼。
    運行一下,原來這個組件的使用也很簡單,你要做的就是得到自己的AdrSet.txt文件。利用這個組件,你甚至可以設計一個現在已非常時髦的廣告交換主頁。

    四、 Content Linking組件
    顯然這個組件與鏈接有關系,如果想馬上知道這個組件的具體用途,恐怕還操之過急,不妨先引用一個經典的例子:假設在網上閱讀一本書,你對以下這些鏈接一定不會陌生:第1章、第2章、…、上一章、下一章(或前一頁、后一頁)等等。我們現在要做的就是如何在這些鏈接之間方便快速地設置跳轉。
    首先建一個鏈接列表文本文件,如urllist.txt
    wuf23.asp 第1章:文件操作(File Access組件)
    wuf28.asp 第2章:Content Linking組件使用示例
    wuf22.asp 第3章:瀏覽器能力組件
    鏈接url地址和描述之間用 Tab 鍵分隔。下面wuf27.asp用來列出urllist.txt中的所有鏈接。
    <% @LANGUAGE = VBScript %>
    <% Option Explicit %>
    <html><head><title>Content Linking組件使用</title></head>
    <body>
    <h2>目錄列表: 注意核心鏈接是第2章, 你一定要點擊它</h2>
    <ul>
    <%
    Dim NextLink, Count
    '建立 Content Linking 組件
    Set NextLink = Server.CreateObject("MSWC.NextLink")

    '獲取文件 urllist.txt 中鏈接數目
    Count = NextLink.GetListCount("urllist.txt")

    Dim url, Dscr, I
    For I = 1 To Count
    url = NextLink.GetNthURL ("urllist.txt", I)           '取得超鏈接
    Dscr = NextLink.GetNthDescription ("urllist.txt", I)  '取得文字描述
    Response.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
    Next
    %>  
    </ul></body></html>
    然后,以wuf28.asp為例說明如何自動實現上一章和下一章跳轉。
    <% @LANGUAGE = VBScript %>
    <% Option Explicit %>
    <html><head><title>這個鏈接要注意</title></head>
    <body>

    <p>這里是第 2 章的正文............</p>

    <% '每個文件都包含下面這句, 就實現了自動鏈接%>
    <!--#include file="wuf29.asp"-->
    </body></html>
    這里最后一句加上去就可以實現自動跳轉,核心在wuf29.asp中。
    <%
    Dim NextLink, rank
    Set NextLink = Server.CreateObject ("MSWC.NextLink")
    '當前的鏈接在 urllist.txt 中位于第幾個
    rank = NextLink.GetListIndex ("urllist.txt")
    Response.Write "<hr>"

    If (rank > 1) Then               'rank = 1 不存在前一頁
    Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>上一章</a>|"
    End If  

    If (rank < NextLink.GetListCount("urllist.txt")) Then  'rank在最后, 則沒有下一頁
    Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>下一章</a>|"
    End If
    %>
    運行這個例子后,你馬上能真正理解這個組件的作用,簡而言之,就是不需要在每頁都寫一個“上一章”、“下一章”,完全通過wuf29.asp一下搞定,是不是很方便?!不然你要是手工修改鏈接的話,不是太麻煩了幾點嗎?
    現在你應該明白了,網上大量的免費計數器、免費留言板、免費聊天室、廣告交換網等等……,其原理都不過如此,大可不必崇拜。


    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>