<cite id="lbrnp"></cite>

<ins id="lbrnp"><form id="lbrnp"></form></ins>
<delect id="lbrnp"></delect>

<delect id="lbrnp"><track id="lbrnp"><cite id="lbrnp"></cite></track></delect>

<delect id="lbrnp"><form id="lbrnp"></form></delect>

      <delect id="lbrnp"></delect>

        <ins id="lbrnp"><form id="lbrnp"><delect id="lbrnp"></delect></form></ins>

          三度網教程:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

          ASP 3.0高級編程(7)

          時間:2023-9-14作者:未知來源:三度網教程人氣:


          (4)  刪除虛擬應用程序
          單擊“Remove”按鈕不會真正地刪除Internet Services Manager中的該條目。而是把現有的虛擬應用程序轉換為一個虛擬目錄。這個目錄有一個帶有藍色球的“文件夾”圖標,該圖標表示這并不是Web網站中一個真正的目錄,而是對磁盤上另一個文件夾的一個重定向。對它進行的訪問方式與創建它的虛擬應用程序相同(即使用相同的URL),但是不作為一個應用程序。換句話說,它不支持自己的Application對象,而是繼承缺省Web網站的Application對象,或者是在該目錄的父目錄中的另一個應用程序的Application對象。
          為了刪除一個虛擬應用程序,可簡單地在Internet Services Manager中的對象上單擊右鍵,在彈出的菜單中選擇Delete。 
          (5)  應用程序存儲的內容
          ASP Application對象提供的全局存儲空間可以用來存儲下列內容:
          · 簡單變量,例如字符串和數字(存儲為Variant,類似于ASP腳本變量)。
          · Variant類型數組,一維或多維。
          · 對一個COM對象實例的變量引用(類型于Variant)。
          (6)  Variant的定義
          Variant是在VBScript腳本引擎中為ASP(和Internet Explorer)提供的唯一變量類型,與在VB和VBA中定義的數據類型 Variant相類似。與大多數常用的基本數據類型(例如字符串或整數)相比,盡管它不能使存儲單元最高效地存儲變量,需要進行額外的處理,但Variant提供許多用處。
          從內部來Variant數據類型存儲數值作為獨立的子類型。它能自動地處理隱含的類型轉換,允許使用如下的代碼:
          strString = ”30”
          intInteger = 12
          Response.Write strString & intInteger ‘Writes 3012 in the resulting page
          Response.Write strString + intInteger ‘Writes 42 in the resulting page
          隱含的數據類型轉換允許忽略HTML廣西的值和列表控件是字符串的情況,并且如果需要的話可以把它們當成數字(假設字符串確實包含一個有效的數字)。也可以隨意地做一些其他的事情,諸如使用VBScript的Len方法檢查Request.Form集合中并不存在的一個值的長度。Len函數試圖把從Request.Form的調用的值轉換成一個字符串。如果該值丟失,返回空(Empty),轉換為帶有””的一個字符串,因此長度是零。
          (7)  VBScript數據類型及轉換
          也可以進行顯式的數據類型轉換。在VBScript中,VarType方法返回一個整數,表明Variant當前保存的子類型:
          Select Case VarType(varMyValue)
              Case 0: Response.Write “Empty (uninitialized)”
              Case 1: Response.Write “Null (no valid data)”
              Case 2: Response.Write “Integer”
              Case 3: Response.Write “Long integer”
              Case 4: Response.Write “Single-divcision floating-point number”
              Case 5: Response.Write “Double-divcision floating-point number”
              Case 6: Response.Write “Currency”
              Case 7: Response.Write “Date”
              Case 8: Response.Write “String”
              Case 9: Response.Write “Automation Object reference”
              Case 10: Response.Write “Error”
              Case 11: Response.Write “Boolean”
              Case 12: Response.Write “Variant (used only with items in arrays of Variants)” 
              Case 13: Response.Write “Data-access Object”
              Case 17: Response.Write “Bytes”
              Case 8192: Response.Write “Variant Array”
          End Select
          還有一些函數,如IsArray、IsDate、IsEmpty、IsNull、IsNumeric和IsObject,對于特定的子類型返回一個Boolean結果。一旦知道了數據的子類型,如果包含的數據合適的話,就可以將之轉換成不同的Variant子類型。這對代碼的透明性和檢查變量是否包含合法值都是有用的,非法的轉換將導致運行期錯誤,轉換如下所示:
          blnBoolean = Cbool(varVariant)  ‘Converts to a Variant of subtype Boolean
          bytByte = Cbyte(varVariant)     ‘Converts to a Variant of subtype Byte
          curCurrency = CCur(varVariant)  ‘Converts to a Variant of subtype Currency
          dtmDate = CDate(varVariant)     ‘Converts to a Variant of subtype Date
          dblDouble = CDbl(varVariant)    ‘Converts to a Variant of subtype Double
          intInteger = CInt(varVariant)   ‘Converts to a Variant of subtype Integer
          ingLong = CLng(varVariant)      ‘Converts to a Variant of subtype Long
          sngSingle = CSng(varVariant)    ‘Converts to a Variant of subtype Single
          strString = CStr(varVariant)    ‘Converts to a Variant of subtype String
          (8)  JScript數據類型及轉換
          在JScript中,其他一些變量類型類似于VBScript,但是沒有代表對象的Variant。所有值都是對象,類型是下列六種數據類型之一:
          · undefined:只有單個值,用于表明請求中的變量沒有聲明和創建,或者若是隱含創建但還未分配任何值。類似于 VBScript的Empty。
          · Null:變量不包含一個有效的值。類似于VBScript的Nothing。
          · Boolean。
          · String。
          · Number。
          · Object。
          JScript提供了一個typeof函數,返回表示數據的類型的字符串,例如:
          StrString = ‘30’;
          IntInteger = 12;
          Response.Write(typeof(strString));  //Write ‘string’ in the resulting page
          Response.Write(typeof(intInteger)); //Write ‘number’ in the resulting page
          每種數據類型都有toString方法和valueOf方法,toString方法將變量的值轉為一個字符串返回,valueOf方法把變量的值作為它的原有數據類型返回。
          (9)  JScript的級聯和加法問題
          JScript在許多方面不同于VBScript,在一定程度上是因為沒有“&”級聯運算符可用。當使用加法運算符時,它先檢查變量的數據類型以決定要做什么。如果兩個變量都是數值,結果是數值的和。如果一個或兩個是字符串,結果是字符串的級聯:
          strString = ‘30’;
          intInteger = 12;
          Response.Write(intInteger + intInteger);    //Writes 24 in the resulting page
          Response.Write(strString + intInteger); //Writes 3012 in the resulting page
          Response.Write(intInteger + strString); //Writes 1230 in the resulting page
          如果進行加法的值超過兩個,要看執行的順序。下面的代碼進行相應的示范:
          intInteger = 12;
          Response.Write(intInteger + intInteger + “<P>”);  //Result is ‘24<P>’
          Response.Write(“<P>” + intInteger + intInteger + “</P>”);
                             ;                 &nbs p;                //Result is ‘<P>1212</P>’
          在第一種情況下,兩個數相加,結果被轉換為一個字符串并與“<P>”字符串進行級聯。在第二種情況下,第一個運算符是一個字符串和一個數的級聯,所以數被轉換為一個字符串。而后,所有的運算符都是級聯運算符。為了避免這個問題,可以使用括號強制第一個運算符是兩個數值的加法:
          Response.Write(“<P>” + (intInteger + intInteger) + “</P>”);
                             ;                 &nbs p;            //Result is ‘<P>24</P>’
          1.     Web應用程序中的組件管理
          在ASP中使用虛擬應用程序的第二個主要方面是:具有較好的對在腳本代碼內實例化和執行的組件進行管理的能力。先不討論有關它怎樣進行工作以及為什么會如此有用的詳細情況,在學習ASP組件的部分時再討論相關內容。
          這里非常簡要地介紹在ASP網頁(此ASP網頁在該應用程序中)中使用組件時,如何對一個虛擬應用程序在Properties對話框(在Internet Services Manager中)進行設置。
          在一個虛擬應用程序的Properties對話框的Home Directory頁的底部,有兩個組合框,為Execute Permissions和 Application Protection,如圖3-9所示:

          圖3-9 Execute Permissions和Application Protection組合框
          應用的保護和執行設置
          因為在本章中,不討論在一個Web網頁內如何創建組件的實例,因此這里先列出這些選項,在創建應用程序時可能要對此進行設置。Execute Permissions 選項如表3-1所示:
          表3-1 Execute Permissions的選項及說明
          選 項 
          說 明 

          None 
          在這個虛擬應用程序中不能運行腳本或可執行文件。實際上,提供了禁止一個應用程序的快速和簡單的方法  

          ScriptsOnly 
          只允許腳本文件(例如ASP、IDC或其他的)在這個虛擬應用程序中運行,不能運行可執行文件 

          Scriptsand Executables 
          允許任何的腳本和可執行文件在這個虛擬應用程序內運行 

          Execute Permissions選項控制可在該虛擬應用程序中執行的類型,而Application Protection選項影響可執行文件和組件運行的方式。在第1章中已經討論過可用的選項,但是在這里再重復一次,Application Protection選項如表3-2所示: 
          表3-2 Application Protection的選項及說明
          選 項 
          說 明 

          Low(IIS Process) 
          帶有這種設置的ASP虛擬應用程序的所有可執行文件和組件運行在Web服務器的可執行文件(Inetinfo.exe)的進程(即內存空間)中。因此,如果可執行文件或組件之一失敗的話,Web服務器處于危險狀態。這提供了最快和以最少的資源執行的選項 

          Medium(Pooled) 
          (缺。⿴в羞@種設置的ASP虛擬應用程序的所有應用程序的可執行文件和組件是運行在DLLHost.exe的單個共享實例的進程(即內存空間)中。這就防止了Web服務器可執行文件(Inetinfo.exe)受可執行文件或組件失敗的影響。然而,一個失敗的可執行文件或組件可能引起DLLHost.exe進程失敗,以及所有其他駐留其中的可執行文件和組件失敗  

          High(Isolated) 
          帶有這種設置的ASP虛擬應用程序的所有應用程序的可執行部分和組件是運行在DLLHost.exe的單個共享實例的進程(即內存空間)中,但是每個ASP應用程序都有自己的DLLHost.exe實例,該實例對該應用程序是獨占的。這就防止了Web服務器可執行文件(Inetinfo.exe)受可執行文件或組件失敗的影響,并防止虛擬應用的單個共享實例受另一個虛擬應用程序的一個可執行文件或組件失敗的影響。Microsoft建議最多有十個這樣的虛擬應用程序駐留在一個Web服務器上  


          3.2.2 ASP會話的定義
              ASP會話引入了一個Web應用程序中粒度的下一層。ASP的Application對象可用來存儲對于“正在運行此應用程序”的所有用戶都是全局的和可訪問的狀態(即簡單變量、對象、數組等)。換句話說,用于響應這個應用程序內所有訪問者的請求的全部ASP代碼能夠對這些值進行訪問(假設已經建立了一個有效的會話,稍后將看到)。
              但是在多數情況下這還不夠。需要具備存儲指定給每個用戶的值的能力,而不必通過給這些值分配名字指明其隸屬于哪個用戶。例如,下列值很可能弄亂應用程序的全局存儲空間:
              MikeJones003PrefFGColor = “darkblue”
              MikeJones003PrefBGColor = “white”
              MikeJones003PrefLinkClolr = “green”
              PriscillaDelores001PrefFGColor = “red”
              PriscillaDelores001PrefBGColor = “darkgrey”
              ...
              etc.
              從載入系統資源和要求一些代碼訪問每個用戶的相應會話的角度來看,還有另外的不足之處。只要有訪問者,該應用程序就一直存在,這意味著應用程序的全局存儲空間需要不斷增大,除非在用戶離開該網站時采取步驟刪除這些值。
              在Web應用程序中提供用戶層作用域
              除了使用全局變量的存儲以外,應該為每個訪問者分配他們自己的私有變量存儲空間,使其對指定訪問者載入的所有頁面都可用的。這種情況下,可以對每個變量使用相同的名字,使ASP代碼非常簡單地得以實現。這些相同的代碼對每個用戶將透明地進行工作,因為訪問的只是訪問者擁有的私有存儲區域:
                 PrefFGColor = “darkblue”
                 PrefBGColor = “white”
                 PrefLinkColor = “green”
                 這就是Session對象產生的地方。
          (1)    會話存儲的內容
          會話存儲的內容對指定的訪問者是全局的,而對其他訪問者來講是私有的,這使得ASP的會話非常有用?梢杂脕泶鎯υ ASP Application對象中存儲的相同類型的數據,即:
          · 簡單變量,例如字符串和數值(像所有的ASP腳本變量一樣存儲為Variant)。
          · Variant數組,一維或多維。
          · 對一個COM對象的實例的變量引用(如同Variant)。
          (2)    會話帶來的問題
          會話提供了一個存儲每個用戶特定的值的方法。然而有幾個意想不到的問題要注意:
          · 記住一些瀏覽器和Web服務器對URL、路徑和文件名的大小寫形式是敏感的(例如Navigator和基于UNIX/Linux的服務器)。如果把一個超級鏈接放置在網頁的一個URL上,并且它們不是同樣的書寫形式,則在瀏覽器中被認為是不相同的。同樣,如果路徑和文件名的書寫形式不是相同的,則瀏覽器認為是不同的路徑或文件。對于在服務器上的定位資源來講,這并不重要,因為IIS對書寫形式不敏感,可以接受大寫形式和小寫形式的任何組合,并返回書寫形式不同的具有相同字符的文件。然而,如果一個cookie已經指定了一個路徑,而且與在超級鏈接中所指定的路徑在書寫形式上不同,瀏覽器可能不會把它以及相應目錄的頁面一起返回給服務器。這有可能找不到依賴于這個cookie的一個用戶會話,并且Session對象將不會在作用域中(即其中的任何變量都是不可用的)。因此,在所有的目錄和網頁名字中,堅持都采用小寫形式或者是比較明顯的混合字母形式,是一個好辦法。
          · 在IIS和ASP的早期版本中,對于嵌套的應用程序還有一些小的“Bug”,有時,當用戶離開嵌套的ASP虛擬應用程序并返回到缺省的ASP應用程序層時,與嵌套應用程序內部已經定義的局部變量相同的名字的任何全局變量不能重新顯現。還有,當會話使用Session.Abandon方法(稍后將會看到)終止時,global.asp文件中的代碼將執行失敗。在ASP 3.0中已經解決了這些問題。
          · 記住會話依賴于cookie。如果訪問者已經禁止使用cookie或者瀏覽器不支持cookie,將不能啟動一個會話,并且不能訪問Session對象。
          (3)    禁止會話
          雖然狀態提供了有益環境,但讓用戶門戶大開。如果不需要保留狀態,可以禁止會話以節約計算機的處理時間。例如,在一個不需要跟蹤訪問者或不需要為訪問者保留全局值的Web網站上,可以防止會話啟動,通過在Internet Services Manager中設置屬性,或為不需要狀態的獨立網頁增加代碼(稍后將看到)。
          為了禁止整個Web網站的所有會話,可編輯缺省Web網站應用程序的屬性。為了禁止一個指定應用程序的會話,可編輯相應虛擬應用程序的屬性。打開相應的應用程序的Properties對話框,在Home Directory頁上單擊Configuration按鈕,如圖3- 10所示:

          圖3-10 Home Directory頁
          在出現的Configuration對話框中,打開App Option。這里可以允許或禁止整個應用程序的會話(在本例中是整個缺省Web 站點),也可以修改缺省的會話Timeout值。在圖3-11中可以看到Timeout設置為20min。在ASP的早期的版本中這是缺省值,可根據要求設置相應的值(在ASP 3.0中,缺省值是10min)。


          圖3-11 App Options頁
          如果要禁止一個指定網頁的會話,同時允許它們在同一個應用程序的其他網頁中創建和使用,可為該頁面增加一條ASP處理指令。它跟在指定缺省語言的語句后(如果沒指定一個缺省語言,可單獨使用該指令):
          <%@LANGUAGE=”VBScript” ENABLESESSIONSTATE=”False”%>到此為止,大致介紹了ASP應用程序和Session對象的一些情況,下面詳細地進行討論。

          關鍵詞:  ASP  3.0高級編程(7)





          Copyright © 2012-2018 三度網教程(http://www.shuofei.net) .All Rights Reserved 網站地圖 友情鏈接

          免責聲明:本站資源均來自互聯網收集 如有侵犯到您利益的地方請及時聯系管理刪除,敬請見諒!

          QQ:1006262270   郵箱:kfyvi376850063@126.com   手機版 

          小红书a v,亚洲精品无码A V片一区二区三区发表贴子国产精品国产精品一区精品国产自在现偷99精品国产在热2023国产拍偷精品网国产精品视频全国免费观看亚洲精品无码A V片一区二区三区相关贴推荐最热最新38卖23一区的v3和二区的v5以后转战A V饭了一区的50块(卡没动)二区的100块国产精品国产精品一区精品国产自在现偷99精品国产在热2023国产拍偷精品网国产精品视频全国免费观看,亚洲国产成人精品久久久999精品国产精品v欧美精品v日韩精品青青精品视频国产久久国产精品久久精品国产亚洲精品国产精品国产欧美精品一区二区三区久久久国产亚州高清国产拍精品女人和拘做受全程看视频欧美一级黄色片亚洲国产成人久久综合碰碰动漫3d午夜一级毛片国产精品v欧美精品v日韩精品青青精品视频国产久久国产精品久久精品国产亚洲精品国产精品国产欧美精品一区二区三区国产精品第一页国产亚洲精品国产福利国产精品自拍国产精品视频在线观看亚洲国产精品一区二区久久国产精品国产三级国产专不,99久久无码一区人妻99久久九九社区精品国产精品第一页国产亚洲精品国产福利国产精品自拍国产精品视频在线观看亚洲国产精品一区二区久久国产精品国产三级国产专不99久久精品免费看国产99久久精品免费观看国产一级亚洲色惰片丁香久久最新欧美交换配乱婬粗大视频视频一区国产自拍日本无码国产精品视频大陆精大陆国产国语精品2023精品国产品对白在线23年香蕉精品国产高清自在自线隔壁老王国产在线精品在线观看精品国产福利片,无码国产精品一区二区免费式影视久久国产精品视频大陆精大陆国产国语精品2023精品国产品对白在线65年香蕉精品国产高清自在自线隔壁老王国产在线精品在线观看精品国产福利片国产精品狼人亚洲国产精品久久精品久久国产菠萝在线视频国产精品尤物极品在线国精品国产亚洲第一区99久久精品国产百合国产精品视频大陆精大陆国产国语精品2023精品国产品对白在线50年香蕉精品国产高清自在自线隔壁老王国产在线精品在线观看精品国产福利片,国产三级精品三级在专区精品国产自在现偷国产精品一区二区三区国产日韩精品欧美一区喷水亚洲精品国产精品国自产国产在线精品一区二区不卡精品国产一区二区三区A V蜜桃人体艺术写真国产精品水蜜桃精品无码久久久久久国产三级精品三级在专区精品国产自在现偷国产精品一区二区三区国产日韩精品欧美一区喷水亚洲精品国产精品国自产国产在线精品一区二区不卡国产中文字幕在线观看国产性一乱一性一伧国产日产欧产美又大又黄欧美人妖