婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP中Server.Execute和Execute實現動態包含(include)腳本的區別

ASP中Server.Execute和Execute實現動態包含(include)腳本的區別

熱門標簽:武穴地圖標注 世界地圖標注了哪些城市 梧州市地圖標注 濟源電銷外呼系統線路 地圖標注陽江 創意電話機器人 外呼線路批發 java外呼系統是什么 石家莊慧營銷外呼系統
最近打算嘗試一下在ASP中實現MVC架構,肯定有人問我:ASP都淘汰了,為什么還研究?這點我也知道,自從微軟放棄ASP 3.0轉向ASP.NET后,ASP已經遠遠落后于和它幾乎同時開始的PHP和JSP,開源比閉源的好處就像PHP和ASP一樣,ASP說淘汰就淘汰,誰也救不了,但是值得注意的是ASP在中國市場還是蠻廣泛的,尤其是一些中小企業的一些應用,簡單的CMS不在話下,而且部署簡單,在一些老舊的Windows系統上,不需要安裝.NET Framework基本上就可以直接運行了,所以準備一個框架,還是有必要的,不過我這個是實驗性框架,只是驗證ASP究竟能不能實現類似PHP的MVC架構。
好了,說了這么多,下面直接轉入正題吧。這個問題的緣由是因為我需要動態包含ASP文件,大家知道在ASP中只有一種include方法,那就是SSI(Server Side Include),基本上分為以下兩種:
復制代碼 代碼如下:

!-- #include file="sample.asp" -->
!-- #include virtual="sample.asp" -->

這兩種基本上大家第一種用得多一些,#include virtual包含的是虛擬路徑,一般虛擬目錄會用得到。但是這兩種都屬于靜態的,如果我們希望是動態包含,但不可以寫成:
復制代碼 代碼如下:

!-- #include file="%=MyVar%>" -->
!-- #include virtual="%=MyVar%>" -->

上面的寫法是錯誤的,可以理解為,#include指令是在ASP啟動腳本引擎執行ASP% %>標記之間腳本之前執行的,也就是說#include不是ASP的工作,而是服務端程序,如IIS的翻譯工作,所以就不會理會你的ASP代碼了。
如何實現類似于PHP的include、include_once、require、require_once動態包含腳本方法呢?下面再來看ASP Server對象的一個方法:Server.Execute ,搜索所有的ASP特性,可以發現這個功能最類似于動態include,我們可以做個實驗:
Sample.inc.asp
復制代碼 代碼如下:

%
Response.Write "Hello World!"
%>

test.asp
復制代碼 代碼如下:

%
Server.Execute "Sample.inc.asp"
Response.Write "I am test.asp!"
%>

實際輸出應該是“Hello World!I am test.asp!”,說明Server.Execute在動態包含方面可以工作得很好,但是如果我想包含類或者函數呢?接下來做下面這個實驗:
Sample.class.asp
復制代碼 代碼如下:

%
Class Sample
End Class
%>

test.asp
復制代碼 代碼如下:

%
Server.Execute "Sample.class.asp"
Response.Write TypeName(Eval("New Sample"))
%>

直接運行,出現錯誤“Microsoft VBScript 運行時錯誤 錯誤 '800a01fa' 類沒有被定義: 'Sample'”,結果很令人失望,為什么會出現這種情況呢?查閱了MSDN,找到這段描述:“If a file is included in the calling page by using #include, the executed .asp will not use it. For example, you may have a subroutine in a file that is included in your calling page, but the executed .asp will not recognize the subroutine name. ” 貌似和我遇到的問題有些不一樣,難道Server.Execute是代碼隔離的?再進行下面這個實驗:
Sample.inc.asp
復制代碼 代碼如下:

%
Dim MyVar
MyVar = "I am Sample!"
%>

test.asp
復制代碼 代碼如下:

%
Dim MyVar
MyVar = "I am test!"
Server.Execute "Sample.inc.asp"
Response.Write MyVar
%>

結果輸出的是“I am test!”,很是失望!看來Server.Execute是變量、函數、類這類代碼隔離的,也就是說調用端和被調用端在代碼級別上互不干擾,看來Server.Execute只能用于包含.asp模板了。
下面隆重出場的是VBScript的腳本特性Execute,傳給Execute的必須是有效的VBScript腳本代碼,而且Execute是上下文相關的,這點看來很接近于我們需要的動態include。
test.asp
復制代碼 代碼如下:

%
Execute "Class Sample : End Class"
Response.Write TypeName(Eval("New Sample"))
%>

上面的代碼成功輸出我們所需要的類型名稱Sample。證明Execute確實可以做到上下文相關,但是問題是利用Execute包含asp文件沒有Server.Execute方便,Execute是VBScript腳本自帶的,首先只能用來執行代碼文本,所以需要讀取一次文件內容,其次不能用來識別ASP的一些標簽,比如% %>還有一種類似于%=MyVar %>的調用方法,所以要過濾掉% %>,然后要轉換%=MyVar %>為Response.Write MyVar。由于我需要的是包含類文件,不會出現%=MyVar %>,只要簡單的Replace掉% %>就可以了。關于讀取文件內容和簡單排除% %>可以參考下面這個函數:
復制代碼 代碼如下:

Function file_get_contents(filename)
Dim fso, f
Set fso = Server.CreateObject("Scripting.FilesystemObject")
Set f = fso.OpenTextFile(Server.MapPath(filename), 1)
file_get_contents = f.ReadAll
f.Close
Set f = Nothing
Set fso = Nothing
End Function
Function class_get_contents(filename)
Dim contents
contents = file_get_contents(filename)
contents = Replace(contents, "" "%", "")
contents = Replace(contents, "%" ">", "")
class_get_contents = contents
End Function

有了上面的函數我們可以直接測試下面的代碼:
Sample.class.asp
復制代碼 代碼如下:

%
Class Sample
End Class
%>

test.asp
復制代碼 代碼如下:

%
Execute class_get_contents("Sample.class.asp")
Response.Write TypeName(Eval("New Sample"))
%>

結果輸出我們所期望的Sample類型名稱,看來Execute還是很強大的,確實很強大,因為經常有不懷好意者用來做“小馬”,最簡單的ASP一句話木馬的寫法估計是下面這句了:
復制代碼 代碼如下:
%Execute Request("c")%>

比如這段腳本位于file.asp,然后傳入file.asp?c=木馬文本,呵呵,下面的事你也知道了吧。好了這個是題外話,關于Execute還有一點需要注意的是,這個是上下文相關的,所以要注意作用域問題,如果Execute位于Sub過程或者Function函數內部,那么在這個外部是無法訪問的。
參考文檔:《Server.Execute Method》 和《使用 Server.Execute 方法》 。
2011年11月23日更新
還有一種VBScript特有的寫法叫做ExecuteGlobal,這個可以解決上文說的作用域問題,通過其執行的代碼是全局有效的,但是要注意避免類、函數、過程或者變量的重定義覆蓋問題。
您可能感興趣的文章:
  • IIS6 中"ASP 0201 錯誤 無效的默認腳本語言" 的解決方法
  • 使用ASP控制指定站點解析腳本語言函數
  • 用InstallShield打包ASP程序的腳本
  • asp分頁生成html的程序腳本代碼
  • 隱藏修改文件時間和文件屬性的ASP腳本
  • ASP.NET調用javascript腳本的常見方法小結
  • 從一個網站扒下的asp生成靜態頁面的代碼 腳本之家特供版
  • iis、apache與nginx禁止目錄執行asp、php腳本的實現方法
  • ASP上傳漏洞之利用CHR(0)繞過擴展名檢測腳本
  • ASP.NET中后臺注冊js腳本使用的方法對比
  • ASP程序中常用的腳本語言

標簽:甘南 唐山 揭陽 滁州 南寧 來賓 淮北 迪慶

巨人網絡通訊聲明:本文標題《ASP中Server.Execute和Execute實現動態包含(include)腳本的區別》,本文關鍵詞  ASP,中,Server.Execute,和,Execute,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP中Server.Execute和Execute實現動態包含(include)腳本的區別》相關的同類信息!
  • 本頁收集關于ASP中Server.Execute和Execute實現動態包含(include)腳本的區別的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕欧美一| 国产精品一卡二卡| 午夜精品免费在线| 91国内精品野花午夜精品| 国产嫩草影院久久久久| 国产一区二区三区免费看| 精品黑人一区二区三区久久 | 欧美日韩国产首页| 午夜av一区二区三区| 67194成人在线观看| 日韩精品每日更新| 337p日本欧洲亚洲大胆精品| 国产99久久久精品| 亚洲精品午夜久久久| 欧美日韩成人一区二区| 男人的天堂久久精品| 久久婷婷一区二区三区| jlzzjlzz亚洲日本少妇| 亚洲欧美日韩综合aⅴ视频| 欧美亚洲愉拍一区二区| 日韩av不卡在线观看| 久久久久久一二三区| 成人一级片网址| 亚洲色欲色欲www| 欧美视频一区二区| 极品少妇xxxx精品少妇偷拍| 中文字幕高清一区| 欧美久久一区二区| 久久成人久久爱| 欧美韩国日本一区| av综合在线播放| 国产精品毛片久久久久久久| 精品一区免费av| 欧美性猛片xxxx免费看久爱| 秋霞午夜av一区二区三区| 欧美亚洲综合色| 亚洲欧美一区二区三区极速播放 | 一本久道久久综合中文字幕| 91香蕉视频在线| 久久夜色精品国产噜噜av| 奇米影视一区二区三区小说| 亚洲图片欧美视频| 国产精品夜夜嗨| 麻豆91在线看| 国产亚洲婷婷免费| 亚洲视频在线观看三级| 国产精品亚洲视频| 精品一区二区三区欧美| 欧美日韩三级视频| 国产激情一区二区三区桃花岛亚洲| 色综合天天在线| 午夜电影一区二区三区| 在线亚洲+欧美+日本专区| 日韩精品欧美成人高清一区二区| 国内精品伊人久久久久av影院| 国产精品免费久久久久| 国产一区二区三区免费看| 久久精品水蜜桃av综合天堂| 午夜精品一区在线观看| 一区二区在线观看免费视频播放| 91精品国产麻豆国产自产在线| 欧美日韩一区二区三区不卡 | 国产欧美精品日韩区二区麻豆天美| 美女视频一区二区三区| 另类调教123区 | 91九色最新地址| 2021国产精品久久精品| 久久久一区二区| 国产真实乱对白精彩久久| 国产精品丝袜91| 在线电影一区二区三区| 男女性色大片免费观看一区二区| 综合欧美一区二区三区| 欧美老女人第四色| 91视视频在线观看入口直接观看www| 国产1区2区3区精品美女| 精品av综合导航| 天堂va蜜桃一区二区三区 | 亚洲一二三四区不卡| 老汉av免费一区二区三区| 国产成人av在线影院| 丁香六月综合激情| 一区二区中文视频| 激情小说亚洲一区| 欧美群妇大交群中文字幕| 91毛片在线观看| 欧美午夜精品一区二区蜜桃| 国产日韩欧美在线一区| 国产一区二区三区在线观看免费| 综合精品久久久| 中文字幕一区二区不卡 | 精品一区精品二区高清| 丝袜a∨在线一区二区三区不卡| 国产日产欧美一区| 99久久精品国产一区| 欧美国产日本韩| 亚洲精品国产第一综合99久久| 成人午夜视频免费看| 国产精品福利影院| 日韩欧美二区三区| 欧洲av在线精品| 综合在线观看色| 99精品视频一区二区三区| 色综合天天综合在线视频| 天堂va蜜桃一区二区三区漫画版| 天堂久久一区二区三区| 99久久精品国产一区| 91.麻豆视频| 欧美天堂一区二区三区| 国产精品免费久久| 精品国产麻豆免费人成网站| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲婷婷综合久久一本伊一区| 精品福利一二区| 成人免费视频在线观看| 中文字幕在线观看一区二区| 精品在线亚洲视频| 激情成人午夜视频| 欧美喷潮久久久xxxxx| 91麻豆精品91久久久久同性| 国产精品久久久久久久久久久免费看 | 韩国三级电影一区二区| 91玉足脚交白嫩脚丫在线播放| 成人美女视频在线观看18| 日韩精品影音先锋| 7777精品伊人久久久大香线蕉经典版下载| 久久久久久久一区| 精品国产3级a| 青娱乐精品在线视频| 国产精品欧美一区喷水| 国产精品欧美一级免费| 欧美自拍丝袜亚洲| 中文字幕精品在线不卡| 樱花草国产18久久久久| 亚洲少妇30p| 色悠悠久久综合| 亚洲国产日韩精品| 亚洲乱码国产乱码精品精小说| 中文字幕第一区综合| 亚洲视频免费看| 日本亚洲欧美天堂免费| 不卡的av电影在线观看| 色嗨嗨av一区二区三区| 亚洲自拍偷拍九九九| 欧美xxxxx裸体时装秀| 专区另类欧美日韩| 亚洲欧洲无码一区二区三区| 亚洲欧美日韩一区| 成人综合在线视频| 欧美一区二区三区四区在线观看 | 国产一区欧美一区| 成人午夜精品在线| 国产香蕉久久精品综合网| 中文字幕国产一区| 奇米一区二区三区| 亚洲在线免费播放| 国产乱子伦视频一区二区三区 | 精品国偷自产国产一区| 夜色激情一区二区| 国产一区日韩二区欧美三区| 日韩精品中文字幕在线不卡尤物| 五月天视频一区| 91极品美女在线| 久久久久国产成人精品亚洲午夜| 韩国女主播成人在线| 在线免费观看一区| 日本午夜一区二区| 色婷婷国产精品| 精品少妇一区二区三区日产乱码| 亚洲欧美日韩一区二区| 国产成人一区二区精品非洲| 91国偷自产一区二区三区成为亚洲经典| 欧美成人女星排行榜| 99v久久综合狠狠综合久久| 中文字幕一区二区不卡| 久久99精品视频| 国产精品久久久久四虎| 国产精品白丝jk黑袜喷水| 国产精品久久久一本精品 | 在线视频国内自拍亚洲视频| 亚洲欧美另类小说| 国产成人丝袜美腿| 亚洲精品写真福利| jizz一区二区| 色婷婷av一区二区三区软件| 精品国产乱码久久久久久蜜臀| 亚洲午夜激情av| 91在线精品一区二区| 337p日本欧洲亚洲大胆色噜噜| 麻豆91免费观看| 99久久免费精品高清特色大片| 亚洲电影第三页| 99视频有精品| 轻轻草成人在线| 久久综合久久综合久久综合| 日本中文一区二区三区| 成人免费视频视频在线观看免费| 中文字幕不卡在线播放| 一区二区三区在线免费播放| 国产suv精品一区二区6|