亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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)腳本的區別的相關信息資訊供網民參考!
  • 推薦文章
    免费毛片基地| 国产一区二区精品在线观看| 日韩专区亚洲综合久久| 四虎久久影院| 色综合久久天天综合绕观看| 99热精品在线| 国产福利免费视频| 国产一区二区精品久久91| 香蕉视频三级| 韩国毛片 免费| 999精品在线| 999精品视频在线| 国产精品自拍一区| 午夜在线观看视频免费 成人| 日韩av片免费播放| 黄色福利片| 国产不卡在线看| 99热热久久| 成人高清视频在线观看| 欧美一级视频高清片| a级精品九九九大片免费看| 国产视频一区二区在线播放| 国产一区国产二区国产三区| 青青久久精品| 精品国产香蕉伊思人在线又爽又黄| 色综合久久久久综合体桃花网| 色综合久久手机在线| 精品视频在线看| 国产视频一区二区在线播放| 国产不卡在线观看视频| 久久精品道一区二区三区| 亚飞与亚基在线观看| 成人在免费观看视频国产| 国产a视频精品免费观看| 久久成人综合网| 你懂的福利视频| a级毛片免费全部播放| 日韩中文字幕在线播放| 欧美a免费| 国产成a人片在线观看视频| 国产精品自拍亚洲| 日韩在线观看视频免费| 美女免费毛片| 国产网站在线| 999久久久免费精品国产牛牛| 欧美a级片免费看| 日本特黄一级| 精品视频免费在线| 日日日夜夜操| 国产国语在线播放视频| 精品在线观看一区| 日日夜夜婷婷| 成人高清免费| 日韩一级精品视频在线观看| 久久精品道一区二区三区| 亚洲爆爽| 亚洲第一页乱| 欧美国产日韩一区二区三区| 可以免费看污视频的网站| 欧美电影免费看大全| 久久国产影视免费精品| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜激情视频在线播放| 日韩男人天堂| 久久成人综合网| 欧美大片aaaa一级毛片| 日韩专区在线播放| a级毛片免费全部播放| 欧美另类videosbestsex视频| 国产视频一区二区三区四区 | 久久精品店| 国产视频久久久| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 九九干| 日韩中文字幕在线亚洲一区| 国产一区国产二区国产三区| 精品视频一区二区三区免费| 国产视频久久久| 成人免费一级纶理片| 免费一级片在线观看| 亚洲第一色在线| 久久国产精品自线拍免费| 亚欧视频在线| 免费毛片基地| 香蕉视频久久| 国产综合成人观看在线| 91麻豆精品国产自产在线观看一区| 中文字幕Aⅴ资源网| 毛片高清| 九九免费高清在线观看视频| 九九干| 99久久精品费精品国产一区二区| 精品视频在线观看视频免费视频| 精品在线视频播放| 欧美激情一区二区三区在线 | 日韩欧美一二三区| 国产视频一区二区在线播放| 久久精品店| 国产一级强片在线观看| 黄视频网站在线免费观看| 日韩欧美一二三区| 999久久久免费精品国产牛牛| 91麻豆精品国产自产在线| 亚洲第一页色| 国产视频一区二区三区四区 | 日韩综合| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美一级视频高清片| 国产网站免费| 日韩在线观看网站| 91麻豆国产| 欧美电影免费看大全| 一 级 黄 中国色 片| 国产视频久久久久| 国产麻豆精品免费视频| 亚欧成人乱码一区二区| 国产a视频精品免费观看| 久久精品成人一区二区三区| 精品国产一区二区三区久久久蜜臀| 韩国三级一区| 精品视频在线观看视频免费视频| 国产网站在线| 天天做日日干| 亚洲第一色在线| 国产91精品一区| 亚洲 男人 天堂| 国产成人欧美一区二区三区的| 成人a级高清视频在线观看| 四虎影视库| 精品视频免费在线| 精品国产一区二区三区久 | 九九精品久久| 日韩专区第一页| 欧美激情一区二区三区视频高清| 免费国产在线观看| 超级乱淫黄漫画免费| 美女免费精品高清毛片在线视 | 天天色色色| 精品久久久久久综合网| 精品视频一区二区| 国产精品1024永久免费视频| 精品视频在线看| 日本特黄一级| 国产一区免费在线观看| 精品视频一区二区三区免费| 日韩在线观看视频网站| 国产91精品系列在线观看| 久久国产精品自线拍免费| 免费一级生活片| 国产极品精频在线观看| 精品在线视频播放| 亚洲第一页色| 国产伦精品一区三区视频| 日本在线不卡免费视频一区| 亚洲www美色| 久久久久久久网| 亚洲 男人 天堂| 久久精品免视看国产成人2021| 国产网站免费观看| 韩国三级一区| 中文字幕一区二区三区 精品 | 国产精品免费久久| 一级女性大黄生活片免费| 日韩av片免费播放| 午夜家庭影院| 日韩av片免费播放| 天天色成人| 亚洲爆爽| 色综合久久天天综合绕观看| 韩国三级视频网站| 色综合久久天天综合观看| 国产成人啪精品| 国产一区二区福利久久| 麻豆系列 在线视频| 日韩一级黄色片| 二级特黄绝大片免费视频大片| 成人免费一级纶理片| 可以免费看毛片的网站| 超级乱淫伦动漫| 成人影视在线观看| 日韩在线观看网站| 成人免费观看视频| 美女免费黄网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 可以免费在线看黄的网站| 成人免费网站久久久| 精品国产三级a∨在线观看| 日日夜夜婷婷| 91麻豆爱豆果冻天美星空| 国产成人精品综合在线| 可以免费在线看黄的网站| 日本免费乱理伦片在线观看2018| 亚洲www美色| 美女免费黄网站| 国产91精品一区二区| 国产91丝袜在线播放0| 国产伦精品一区二区三区无广告 | 青青青草视频在线观看| 日本特黄特黄aaaaa大片| 美女免费精品视频在线观看|