国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

ASP 3.0高級編程(二106)

ASP 3.0高級編程(二106)

更新時間:2022-05-10 文章作者:未知 信息來源:網絡 閱讀次數:

6.2.6 Content Rotator組件
       Content Rotator組件像一個簡化的Ad Rotator組件,需要提供一種內容調度文件(Content Schedule File)。該文件僅是一種包含文本段和HTML代碼段的文本文件,Content Rotator組件可在頁面中自動顯示其中的一個。調度表文件可以包括任何數量的文本內容條目,并可規定比率,用以控制在返回網頁中每個條目的顯示頻率。
1.  內容調度文件
內容進度文件的結構比Ad Rotator的調度文件簡單,僅需提供要使用的各個文本字符串的列表,由前面加兩個百分號(%%)的語句行說明。為了設置每個條目的比率(決定它出現在返回頁面中的頻率),在雙百分號的后面添加了一個數字,其后還可跟一對前向斜線符(//)添加注釋。如:
%% 3 // This is the first entry in the schedule text file
For more information, mail us at
<A HREF=mailto:feedback@wrox.com>Wrox Press</A>

%% 4 //This is a multi-line text string
<H4>Wrox Press</H4>
<UL>
       <LI> Language Primers
       <LI> Advanced Programming
       <LI> Internet Applications
</UL>

%% 2
Visit us on the <A HREF="http://www.wrox.com">World Wide Web</A>

這個例子說明了可以用于網頁中的三個文本字符串,比率分別是3、4和2,所以條目將以3/9、4/9和2/9的頻率出現。注意(和Ad Rotator組件一樣)每個字符串的實際出現是隨機的,然后經修正后獲得相應的比率,如果調入網頁九次,可能不會正好得到這個結果。
2.  Content Rotator組件的成員
Content Rotator組件僅提供兩個方法,用于從內容調度文件中檢索內容,如表6-5所示:
表6-5  Content Rotator組件的方法及說明
方 法
說 明

GetAllContent(schdule_file)
檢索和顯示schdule_file文件中的所有字符串

ChooseContent(schdule_file)
檢索(但不顯示)來自schdule_file文件的下一個合適的內容字符串

3.  使用Content Rotator組件
為了從調度文件中獲得指定段的文本和HTML,可使用對象的ChooseContent方法檢索一個條目,按照內容調度文件中規定的比率。可以使用Response.Write方法將其插入到發送給客房機的輸出流中。
<% 'In VBScript:
Set objMyContent = Server.CreateObject("MSWC.ContentRotator")
strContent = objMyContent.ChooseContent("ContentRotator/content_schedule.txt")
Response.Write strContent
%>
這個代碼使用了和頁面在同一目錄中的調度文件,如果這段代碼存放在其他地方,必須注明調度文件的路徑,這個路徑可以是一相對于Web網站根目錄的物理路徑或是一個完整的虛擬路徑。
ObjMyContent.ChooseContent("\content\mycontent.txt")    'relative physical path
ObjMyContent.ChooseContent("/demo/mycontent.txt")      'full virtual path
如果想顯示內容調度文件中的所有內容字符串,可以使用對象的GetAllContent方法,如ChooseaContent方法的情況一樣,必須提供調度文件的路徑。例如下面的代碼得到了內容調度文件中的所有內容并顯示在網頁里。注意這個方法把內容自動地插入到網頁中,所以不必使用Response.Write方法,這個方法也自動地在每個條目之間加了一個水平線。
ObjMyContent.GetAllContent("mycontent.txt")
為了研究Content Rotator組件的作用,從“ASP Installable Components”主菜單打開提供的示例頁面,這個頁面使用前面講過的內容調度文件。調用ChooseContent方法,并把一個條目放在頁面的頂部,然后使用GetAllContent方法顯示調度文件中所有條目的內容。Content Rotator組件示例頁面如圖6-9所示:

圖6-9  Content Rotator組件示例頁面

6.2.7 Page Counter組件
       Page Counter組件用于統計每個網頁被訪問的次數,該組件定期把統計的數據存入服務器磁盤上的一個文本文件——訪問次數統計數據文件(Hit Count Data File)中,所以在停機或出現錯誤信息,當前數據也不會丟失。
1.  Page Counter組件的成員
Page Counter組件提供了向該文件增加訪問次數的方法以及讀取和重新設置訪問計數總和的方法,如表6-6所示:
方 法
說 明

Hits([Page_Path])
返回由Page_Path指定的網頁的訪問次數,如果選項Page_Path省略的話,返回的是當前網頁的訪問次數

PageHit()
增加當前網頁的訪問次數

Reset([Page_Path])
設置由Page_Path指定的網頁的訪問次數為0,如果選項Page_Path省略的話,設置當前網頁的訪問次數為0

2.  使用Page Counter組件
下面例子使用JScript語言來說明Page Counter組件的使用,先用Server.CreateObject方法創建對象實例,然后調用Hits方法得到對當前網頁的訪問次數。如果訪問次數達到5次,則把計數器重新設置為0,并且在網頁中放置一個鏈接,以便向訪問者通過成績。
<% // in JScript:
var objPageCount = Server.CreateObject('MSWC.PageCounter');

//look for a command sent from the FORM section buttons

// increment the counter and display the current hit count
objPageCount.PageHit();
Response.Write('You are visitor number ' + objPageCount.Hits() + '<P>');

// we treat every fifth visitor as a winner
if (objPageCount.Hits() == 5) {
   objPageCount.Reset();   // reset the counter
   Response.Write('You\'re a lucky winner!<BR>');
   Response.Write('<A HREF="winner.asp">Go to our winners page</A><BR>');
}
%>
注意在第二個Response.Write語句中,后向斜線(\)的使用是防止JScript引擎把引號看作字符串的結束。
本書提供了一個使用Page Counter組件的示例網頁。然而,由于在每個示例頁面里使用一個VBScript為這個組件示例編寫程序。盡管在一個ASP網頁里,混用腳本語言是可能的,但在SSI的#include文件中使用腳本語言能使網頁緩存出現問題,并會引起不可預測的結果。雖然腳本語言不同,但示例網頁的工作方式上與上述相同。Page Counter組件示例頁面如圖6-10所示:

圖6-10  Page Counter組件示例頁面
該網頁包含的<FORM>段中含有兩個按鈕,兩個按鈕都把窗體提交以重新調入網頁。
<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">
<INPUT TYPE="SUBMIT" VALUE="&nbsp;&nbsp;&nbsp;"> Reload this page<P>
<INPUT TYPE="SUBMIT" NAME="cmdReset" VALUE="&nbsp;&nbsp;&nbsp;">
PageCounter.Reset( )
</FORM>
在網頁的開頭,與其他的示例網頁一樣,在請求中查找相關的按鈕名字。在本頁面中,我們僅對第二個名為cmdReset的按鈕感興趣,如果點擊了該按鈕,運行Page Counter組件的Reset方法,重新設置本頁面的訪問次數為0。
'look for a command sent from the FORM section buttons
If Len(Request.Form("cmdReset")) Then objPageCount.Reset  'reset the counter
前面看到的代碼將調用PageHit方法把計數器設置為1,并顯示在網頁里。注意已經使用了Hits和Reset方法而沒有給可選參數提供數值,所以它們都在當前網頁計數器上操作,當然能夠在另一個網頁中使用,并可以對一些網頁的統計結果匯總。

6.2.8  Permission Checker組件
       Permission Checker組件用來檢測用戶當前正在訪問網站的帳號是否允許讀取某個特定文件或者訪問某個資源(僅在Windows NT/2000而不是在Windows 9X)。可以用它來定制頁面,這些網頁中僅包含當前用戶允許訪問的資源的鏈接,這項技術對于隱藏限制訪問的網頁和資源是非常有用的,它可以使被限制的訪問者不知道這些資源的存在,不會產生強行進入其中的企圖。
1.  Permission Checker組件的成員
Permission Checker組件只有一個方法,如表6-7所示:
表6-7  Permission Checker組件的方法及說明
方 法
說 明

HasAccess(file_path)
檢查當前執行頁面的用戶帳號是否允許訪問file_path指定的頁面。該路徑是一個網頁、文件或資源的物理的或虛擬的路徑。如果當前帳號允許訪問,返回值為“True”,否則返回值為“False”

2.  Permission Checker組件的工作過程
通常,除非特別規定,否則用戶是匿名訪問網頁的,因此IIS本身會使用自己的Windows帳號訪問網頁,缺省值是IUSR_machinename(例如IUSR_WROXBOX),Permission Checker組件檢查IUSR_machinename帳號是否能夠訪問指定的網頁或資源。
然而,通過Internet Services Manager的Allow Anonymous Access選項關閉對Web網站或者對某一指定目錄的匿名訪問,可以強迫IIS提示用戶輸入一個有效用戶帳號的用戶名和口令,然后使用該帳號“非匿名訪問”資源。
對一個網站或目錄,在Internet Services Manager上的Properties對話框中的Directory Security選項卡中設定訪問控制。在對話窗體中的Anonymous Access和Authentication Control中,點擊Edit按鈕打開Authentication Methods對話框,關閉Anonymous Access選項。設置界面如圖6-11所示:

圖6-11  訪問權限的設置界面
當Permission Checker組件在用戶用其自己的帳號(而不是IUSR_machinename)訪問的網頁中被實例化時,將檢查其帳號是否可以訪問這個指定的資源,如果不能使用匿名訪問,那么所有的用戶必須提供帳號細節。可以使用Windows Explorer對每個文件或資源設置指定的權限(在相應的Properties對話框中的Security選項卡中)。設置界面如圖6-12所示:

圖6-12  權限設置界面
3.  使用Permission Checker組件
可以使用Permission Checker組件檢查當前用戶是否使用HasAccess方法訪問其他頁面(網站上的任何頁面)的權限。本書提供了一系列實例頁面,可用來試驗Permission Checker組件,打開此示例(從ASP Installable Components主菜單里打開),會看到網頁里的三項鏈接,如圖6-13所示:

圖6-13  使用Permission Checker組件的示例頁面
鏈接所指向的每一個頁面都位于Chapter06示例目錄下的PermissionChecker子目錄中。Permission Checker組件檢查當前用戶是否有訪問各個網頁的權限。如果用戶確實有訪問這個網頁的權限的話,這個網頁的條目將是一個超級鏈接。
'create an instance of the component
Set objPermit = Server.CreateObject("MSWC.PermissionChecker")
%>
<UL>

<LI>
<% If objPermit.HasAccess("PermissionChecker/restricted_1.asp") Then %>
<A HREF="PermissionChecker/restricted_1.asp">
<% End If %>
Restricted Page Number 1
<% If objPermit.HasAccess("PermissionChecker/restricted_1.asp") Then %>
</A>
<% End If %>
</LI>

.. 'other page links here

</UL>
現在我們有訪問三個有訪問限制的網頁的權限,所以這三個條目都是超級鏈接。然而這里不存在第四個鏈接(它可以被移去或是刪除),因為組件不能使用當前用戶(也就是IUSR_machinename)的帳號來訪問它,因此不顯示為超級鏈接。
注意這里選擇僅移去超級鏈接但留下了鏈接文本,在實際情況中應刪除不可訪問的網頁的整個條目。
如果從PermssionChecker子目錄中的restricted_2.asp文件上刪除Read(和任何其他的)權限,并重新調入網頁,對應的條目將不顯示為一個超級鏈接,如圖6-14所示:

圖6-14  刪除Read權限后的頁面顯示

6.2.9 MyInfo組件
       MyInfo組件最初是與個人Web服務器一起引入的,用于存儲服務器管理員提供的個人信息。它現在可以用在ASP 3.0中,為名稱/數值對,或者任何其他類型的可以表示為文本字符串的信息提供永久存儲。該信息以XML格式在文本文件myinfo.xml中保存,此文件僅位于Web服務器的inetsrv目錄下。在Windows 2000中,其路徑為WinNT\system32\inetsrv\。
       和Counter組件一樣,只需創建一個簡單的MyInfo組件的實例就可以使用Web網站上的所有頁面均能獲得其信息,確保缺省Web站點上的global.asa文件中有下面的代碼:
       <!-- declare instance of the ASP MyInfo component with application-level scope
-->
<OBJECT ID="objMyInfo" RUNAT="Server" SCOPE="Application" PROGID="MSWC.MyInfo">
</OBJECT>
1.  使用MyInfo組件
MyInfo組件缺省時沒有屬性和方法。然而可給其添加屬性,簡單地說,也就是賦一個名稱和數值給這些屬性。比如,可以添加有關工作環境和合作伙伴的信息。
<% 'in VBScript:
objMyInfo.MyManager = "Christina Chan"
objMyInfo.MyPhoneExtension = "2851"
objMyInfo.MyCarParkingSpace = "4A-17"
objMyInfo.MyComputerName = "Priscilla"
%>
同別的組件屬性一樣,可以使用下面代碼檢索數值。
<% 'in VBScript:
strManagerName = objMyInfo.MyManager
strPhoneExtension = objMyInfo.MyPhoneExtension
strParkingSpace = objMyInfo.MyCarParkingSpace
strComputerName = objMyInfo.MyComputerName
%>
這是一種在兩個頁面請求之間存儲值的有用方法,不需要用戶的Session對象。這也為將來可能改變的數值提供了一個存儲區域,采用這些值的頁面將會在下次運行時自動地采集這些變化的值,從而避免必須編輯大量的其他頁面。
本書提供了一個使用MyInfo組件的簡單示例,這個示例從ASP Installable Components主菜單中運行,使用剛才討論的設置組件屬性的代碼,并可改變屬性值,如圖6-15所示:

圖6-15  使用MyInfo組件的頁面
       首次打開頁面時,創建屬性時使用了一個標志變量SetDefaultValues,該變量存放在用戶的Session對象中。當頁面在每個會話里首次打開時,把屬性參數設置成“缺省”值,之后,把此標志變量設置成Yes。在當前會話中,重新調入頁面時,這個數值將不再重新設置缺省值。
       'an instance of the component is already created in global.asa
If Not Session("SetDefaultValues") = "Yes" Then
  'set the properties if they're not set to the default values,
  'i.e. if this is the first time that the page has been run
  'during the current user session.
  objMyInfo.MyManager = "Christina Chan"
  objMyInfo.MyPhoneExtension = "2851"
  objMyInfo.MyCarParkingSpace = "4A-17"
  objMyInfo.MyComputerName = "Priscilla"
  'set a session flag to show that the default values hve been set
  Session("SetDefaultValues") = "Yes"
End If
每次調用頁面時,檢查請求中的值是否是用于改變屬性值的按鈕的名稱。這個按鈕在一個包含下拉列表和文本框的<FORM>上。如果發現點擊了這個按鈕,則從下拉列表和文本框里采集數值,然后用這些數值改變相關的屬性值。
'look for a command sent from the FORM section buttons
If Len(Request.Form("cmdChange")) Then
  strPropertyName = Request.Form("lstName")  'get the name of the property
  strNewValue = Request.Form("txtValue")         'get the new value for the property
  objMyInfo(strPropertyName) = strNewValue   'set the component property value
End If
  

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

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        久久人人爽人人爽| 日韩欧美在线影院| 欧美一区二区三区四区久久| 亚洲日本青草视频在线怡红院| av在线不卡免费看| 亚洲蜜臀av乱码久久精品| 欧美性xxxxxx少妇| 久久99精品视频| 中文字幕一区二区三区视频| 在线观看视频一区| 欧美96一区二区免费视频| 国产欧美日韩另类视频免费观看| av一区二区久久| 午夜精品在线看| 欧美国产精品专区| 欧美日韩电影一区| 国产成人免费在线| 亚洲二区在线视频| 久久精品亚洲精品国产欧美| 91福利在线看| 国产九九视频一区二区三区| 亚洲成人av资源| 国产婷婷色一区二区三区在线| 91久久人澡人人添人人爽欧美| 免费观看日韩av| 亚洲精品福利视频网站| 久久先锋资源网| 欧美精品在欧美一区二区少妇| 粉嫩嫩av羞羞动漫久久久| 性做久久久久久免费观看欧美| 中文av一区二区| 欧美一级在线视频| 日本道精品一区二区三区| 国产乱子伦视频一区二区三区| 亚洲va在线va天堂| 亚洲欧美欧美一区二区三区| 久久综合精品国产一区二区三区| 欧美视频一二三区| 99国产精品国产精品久久| 国内精品国产成人| 奇米色一区二区| 亚洲成人av福利| 亚洲自拍偷拍综合| 国产精品久99| 欧美激情中文字幕| 久久久久亚洲综合| 精品99999| 欧美成人猛片aaaaaaa| 欧美日韩国产系列| 欧美午夜影院一区| 在线视频欧美区| 在线日韩国产精品| 在线免费观看不卡av| 欧美影院一区二区三区| 在线欧美小视频| 欧美体内she精视频| 欧美在线你懂的| 欧美在线高清视频| 欧美色区777第一页| 欧美日韩国产首页| 日韩精品专区在线影院观看| 精品三级av在线| 欧美大尺度电影在线| 久久老女人爱爱| 欧美国产精品中文字幕| 国产精品私房写真福利视频| 中文一区在线播放| 亚洲欧美日韩在线不卡| 亚洲永久免费视频| 日本美女一区二区三区视频| 日韩av在线免费观看不卡| 精品无人码麻豆乱码1区2区 | 在线精品国精品国产尤物884a| 91老师片黄在线观看| 色综合久久久久| 欧美日韩一区二区电影| 日韩欧美二区三区| 亚洲国产经典视频| 亚洲激情校园春色| 麻豆国产精品777777在线| 国产成人精品亚洲日本在线桃色| 99国产欧美久久久精品| 欧美日韩视频专区在线播放| 日韩欧美亚洲国产另类| 中文字幕乱码日本亚洲一区二区| 亚洲色图19p| 日韩电影网1区2区| 成人午夜电影小说| 欧美日韩国产乱码电影| 久久伊人蜜桃av一区二区| 国产精品成人免费精品自在线观看 | 久久精品国产亚洲5555| 成人激情小说网站| 精品视频一区二区三区免费| 欧美一区二区高清| 国产精品久久久一本精品| 亚洲国产精品综合小说图片区| 蜜桃一区二区三区在线| 91污片在线观看| 日韩亚洲电影在线| 国产精品灌醉下药二区| 蜜桃在线一区二区三区| 色婷婷激情综合| 久久精品人人爽人人爽| 日韩二区三区在线观看| av在线不卡观看免费观看| 精品欧美一区二区久久| 亚洲午夜私人影院| av一二三不卡影片| 久久久久久99久久久精品网站| 亚洲444eee在线观看| 91香蕉视频mp4| 欧美国产精品一区| 韩国毛片一区二区三区| 欧美人体做爰大胆视频| 亚洲男同性恋视频| 成人不卡免费av| 久久久精品黄色| 麻豆91精品91久久久的内涵| 欧美日韩午夜在线| 亚洲精品成人天堂一二三| 大陆成人av片| 久久久不卡影院| 激情五月婷婷综合网| 欧美一区二区不卡视频| 日韩电影在线免费看| 91麻豆精品国产无毒不卡在线观看| 一区二区三区不卡在线观看| 91在线视频官网| 1区2区3区精品视频| 91丝袜美女网| 亚洲精品视频免费看| 色婷婷国产精品| 亚洲综合色丁香婷婷六月图片| 91免费视频网址| 亚洲精品videosex极品| 91精品福利视频| 亚洲第一搞黄网站| 欧美日本一道本在线视频| 五月天激情综合| 欧美成人r级一区二区三区| 国内精品视频666| 中文字幕av不卡| 91国偷自产一区二区开放时间 | 国产乱色国产精品免费视频| 欧美va在线播放| 国产一区二区中文字幕| 欧美韩国一区二区| 99久久久无码国产精品| 亚洲人成在线播放网站岛国| 色94色欧美sute亚洲线路一ni| 午夜欧美电影在线观看| 久久综合九色综合欧美98| 成人aaaa免费全部观看| 亚洲一区二区视频在线观看| 欧美高清视频一二三区| 久久精品国产精品亚洲红杏| 国产亚洲福利社区一区| 色婷婷av一区二区三区gif| 午夜成人免费电影| ww亚洲ww在线观看国产| 色综合久久久久综合99| 久久精品国产精品亚洲红杏| 国产精品日产欧美久久久久| 欧美亚洲动漫精品| 国内久久婷婷综合| 亚洲另类在线制服丝袜| 日韩欧美123| 91福利在线播放| 国产精品996| 日韩av电影免费观看高清完整版| 国产精品网站导航| 91精选在线观看| jizzjizzjizz欧美| 久久成人综合网| 亚洲国产欧美日韩另类综合| 国产女人aaa级久久久级 | 欧美日韩精品一二三区| 成人黄色大片在线观看| 精品电影一区二区| 久久噜噜亚洲综合| 色就色 综合激情| 成人一道本在线| 欧美日韩三级一区二区| 国产在线视视频有精品| 亚洲第一综合色| 亚洲欧洲日韩女同| 26uuu久久综合| 欧美精品 日韩| 色欧美片视频在线观看| 国产精品系列在线播放| 欧美bbbbb| 亚洲gay无套男同| 亚洲精品乱码久久久久久久久| 久久久美女艺术照精彩视频福利播放| 91.麻豆视频| 欧美日韩一级黄| 在线一区二区三区四区| 91亚洲精品一区二区乱码| 成人一二三区视频|