濮阳杆衣贸易有限公司

主頁 > 知識庫 > ASP編程入門進階(七):內(nèi)置對象Server

ASP編程入門進階(七):內(nèi)置對象Server

熱門標簽:鄭州智能外呼電銷機器人廠家 廣東語音外呼系統(tǒng)公司 沈陽電話機器人公司 虛擬電話外呼系統(tǒng) 長春公司外呼系統(tǒng)中心 鄢陵學校如何做地圖標注 成都ai外呼系統(tǒng)線路 沈陽三五防封電銷卡 云南便宜外呼系統(tǒng)平臺
Server 對象提供對服務器上的方法和屬性的訪問 , 其中大多數(shù)方法和屬性是作為實用程序的功能服務。(IIS HELP翻譯)
有了 Server 對象,你就可以在服務器上啟動 ActiveX 對象例程,并使用 Active Server 服務提供象 HTML 和 URL 編碼這樣的函數(shù)。
一,Script.ScriptTimeout
在腳本運行超過一段時間之后,即作超時處理。
服務器一般的默認腳本運行時間是90秒。
你可以從“Internet信息服務”中“默認Web站點”的屬性彈出框中看出,你也可以自己設定。

呵呵,上面的可不是,900秒了。
應該是“主目錄”標簽中的“配置”對話框中,WINXP一樣。



在理解腳本運行時間之前,先來看一個程序,主要功能就是進行計算網(wǎng)頁執(zhí)行時間的。

[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]

當然對應的ASP也就是看到許多站點都有的頁面執(zhí)行時間顯示

1,time.asp


%startime=timer()%>
a href=#bot>到下面看執(zhí)行的時間/a>
%
for i= 1 to 5000
response.write("hr width="int(500+i)">")
next
%>
當然中間還可以添加其它內(nèi)容。br>
%endtime=timer()%>
a name=bot>/a>
%=FormatNumber((endtime-startime)*1000,3)%>毫秒



那如果上面的程序變成for i= 1 to 5000000
呵呵,是不是機器快反應不過來的感覺,那這個就是腳本的執(zhí)行時間了。
為了讓程序能很好的執(zhí)行,就該把腳本執(zhí)行時間放長了。
怎么放長?把默認的改?呵呵,當然不是:)


%Server.ScriptTimeout=110%>


時間的設定當然要是比默認90秒大的,現(xiàn)在的代碼就是:指定服務器處理腳本在 110 秒后超時。
還有,腳本時間的確定要看自身的程序了,一般情況100秒左右也差不多了,即使能執(zhí)行出來,可能觀看網(wǎng)頁的人早就把它叉叉了。

以上的ScriptTimeout就是Server對象唯一屬性了

二,Server.HtmlEncode
HtmlEncode就是Server對象的其中一個方法了。它允許你對特定的字符串進行 HTML 編碼,雖然 HTML 可以顯示大部分你寫入 ASP 文件中的文本,但是當你需要實際包含 HTML 標記中所使用的字符,就會遇到問題。這是因為,當瀏覽器讀到這樣的字符串時,會試圖進行解釋。

還是看一個程序,我想在頁面顯示“nbsp;”這樣的代碼(附:nbsp;是空格的代碼)
那么當我進行書寫的時候你會發(fā)現(xiàn),瀏覽器已經(jīng)給我解釋了的。

[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]

所以,為了要讓一些特殊代碼能夠顯示,就運用該方法了。

2,htmlencode.asp


%Response.write ("這是沒有采用 HTMLEncode 方法的測試。br> 這里就另起一行,說明代碼被執(zhí)行。nbsp;")%>
hr>
%Response.write Server.HtmlEncode("這是對 HTMLEncode 方法的測試。br> 這里應該不會另起一行,也就是代碼沒有被執(zhí)行了。nbsp;")%>


這在許多網(wǎng)站,論壇都存在的一些BUG,不信你可以到各論壇試試:敲入nbsp;就是沒有,急死你呢:)當然HtmlEncode只是其中的一個原因,最主要的還是UBB代碼的轉(zhuǎn)換。不過關于這點我也已經(jīng)調(diào)試解決了。
調(diào)試地址參看 http://www.cnbruce.com/juven/showart.asp
當然經(jīng)典論壇不存在這問題,要不你也不會看到效果了。

三,Server.UrlEncode
正如 HtmlEncode 方法使客戶可以將字符串翻譯成可接受的 HTML 格式一樣,Server 對象的 UrlEncode 方法則是根據(jù) URL 規(guī)則對字符串進行正確編碼,當字符串數(shù)據(jù)以 URL 的形式傳遞到服務器時,在字符串中不允許出現(xiàn)空格,也不允許出現(xiàn)特殊字符。為此,如果你希望在發(fā)送字符串之前進行 URL 編碼,可以使用 Server.URLEncode 方法。
為方便起見,我們先看為處理送交,然后處理接受的效果。

3,urlencode.asp


%filepath=request.servervariables("script_name")%>
接受URL中的值(沒有處理接受值,發(fā)現(xiàn)值被解釋了): %=request.querystring("cnbruce")%>
form action="%=filepath%>">
你可以輸入“l(fā)t;hrgt”等代碼看看:input type="text" size="20" name="cnbruce">input type="submit">
/form>
接受URL中的值(進行了urlencode編碼,不會執(zhí)行): %=Server.URLEncode(request.querystring("cnbruce"))%>



當然你會發(fā)現(xiàn),雖然不執(zhí)行了,但會出現(xiàn)“”變成了“%3C”,“>”變成了“%3E”,那這就是因為沒有在發(fā)送之前處理。
不過,我們還可以通過Replace函數(shù)將這些特殊代碼再逆轉(zhuǎn)過來。

4,vurlencode.asp


%
function tihuan(what)
tihuan=what
if not isnull(what) then
tihuan=replace(tihuan,"%3C","lt;")
tihuan=replace(tihuan,"%3D","=")
tihuan=replace(tihuan,"%3E","gt;")
tihuan=replace(tihuan,"%26","")
tihuan=replace(tihuan,"%20","nbsp;")
tihuan=replace(tihuan,"%3B","#59;")
tihuan=replace(tihuan,"%22","quot;")
tihuan=replace(tihuan,"%2B","+")
tihuan=replace(tihuan,"%2F","/")
end if
end function
%>

%filepath=request.servervariables("script_name")%>

接受URL中的值(沒有處理接受值,發(fā)現(xiàn)值被解釋了): %=request.querystring("cnbruce")%>

form action="%=filepath%>">
你可以輸入“l(fā)t;hrgt”等代碼看看:input type="text" size="20" name="cnbruce">input type="submit">
/form>
接受URL中的值(進行了urlencode編碼,不會執(zhí)行): %=tihuan(Server.URLEncode(request.querystring("cnbruce")))%>



呵呵,其實上面我是做的無用功啦,真正應該是在發(fā)送之前就該處理下的,不過對學習該方法的舉例確是個好方法:)

四,Server.MapPath
相信看過我寫的《DW2ASP系列》的朋友,都卡在這個上了。DW畢竟是入門的好東西,但要系統(tǒng)學ASP編程,對這個就該好好認識了解下。
MapPath方法,具體的就是將指定的相對或虛擬路徑映射服務器上相應的物理目錄上。
用法,也就是語法了,如下:


Server.MapPath(Path)


Path 指定要映射物理目錄的相對或虛擬路徑。若 Path 以一個正斜杠 (/) 或反斜杠 (\) 開始,則 MapPath 方法返回路徑時將 Path 視為完整的虛擬路徑。若 Path 不是以斜杠開始,則 MapPath 方法返回同本文件中已有的路徑相對的路徑。這里需要注意的是 MapPath 方法不檢查返回的路徑是否正確或在服務器上是否存在。
當然這可以和Request.ServerVariables連起來使用看看。

5,mappath.asp


Request.ServerVariables("APPL_PHYSICAL_PATH") : %=Request.ServerVariables("APPL_PHYSICAL_PATH")%>p>
Request.ServerVariables("PATH_INFO") : %=Request.ServerVariables("PATH_INFO")%>p>
Request.ServerVariables("SCRIPT_NAME") : %=Request.ServerVariables("SCRIPT_NAME")%>p>
Request.ServerVariables("URL") : %=Request.ServerVariables("URL")%>p>
Request.ServerVariables("PATH_TRANSLATED") : %=Request.ServerVariables("PATH_TRANSLATED")%>hr>
上面都是通過ServerVariables提取得出的值,下面就來運用mapath把一個虛擬地址轉(zhuǎn)變?yōu)閷嶋H的物理地址。p>
Server.MapPath(Request.ServerVariables("URL")) :%=Server.MapPath(Request.ServerVariables("URL"))%>p>
或者自己隨便寫個不存在的路徑,同樣能夠執(zhí)行p>
Server.MapPath("cnbruce.asp") : %=Server.MapPath("cnbruce.asp")%>p>
再來個“/”的p>
Server.MapPath("/cnbruce.asp") : %=Server.MapPath("/cnbruce.asp")%>br>
Server.MapPath("\cnbruce.asp") : %=Server.MapPath("\cnbruce.asp")%>p>
你會發(fā)現(xiàn)物理地址轉(zhuǎn)變到IIS默認根目錄下面了。
這就是如6to23之類的站點mappath的問題所在。還是虛擬主機好,即使是根,也還是自己站點的默認存放節(jié)點根。


測試我的地址http://www.cnbruce.com/server.asp
注意測試的地址和根目錄下的地址,對應的是同一文件夾(這就是虛擬主機),6to23之類是不會相同的。

有此些了解,對路徑的處理應該要好多了,再返回我的站點,看看我對數(shù)據(jù)庫的mappath路徑的處理方法,相信又是一個理解層次了。
數(shù)據(jù)庫的mappath路徑的處理方法在:
http://www.cnbruce.com/blog/showlog.asp?cat_id=27log_id=241

五,Server.CreatObject
Server.CreateObject 這個方法恐怕是 ASP 中最為實用,也是最強勁的功能了。它可用于創(chuàng)建已經(jīng)注冊到服務器上的 ActiveX 組件實例。這是一個非常重要的特性,因為通過使用 ActiveX 組件能夠使你輕松地擴展 ActiveX 的能力,正是使用了 ActiveX 組件,你可以實現(xiàn)至關重要的功能,譬如數(shù)據(jù)庫連接、文件訪問、廣告顯示和其他 VBScript 不能提供或不能簡單地依靠單獨使用 ActiveX 所能完成的功能。也正是因為這些組件才使得 ASP 具有了強大的生命力。
呵呵,不過,在我們沒有談及連接數(shù)據(jù)庫之前,這個先空著,“要得好,到臨了”:)等我們接觸到數(shù)據(jù)庫連接的時候再說不遲。

恩,那今天就主要把Server對象學習了下,感覺好象是每個都有用的,重要啊。
還有,需要說明的,如果您從本處轉(zhuǎn)載,發(fā)現(xiàn)和本源件有差錯,比如代碼nbsp; 、 lt 、 gt等等,根本就是被執(zhí)行了的。都說明您的站點存在著這些問題。
您可能感興趣的文章:
  • 如何用ASP建立Index Server查詢對象并為其參數(shù)賦值?
  • asp sqlserver 執(zhí)行存儲過程返回記錄集報對象關閉時不允許操作
  • asp提示Server 對象 錯誤 ASP 0178 : 80070005
  • Asp.net內(nèi)置對象之Server對象(概述及應用)
  • ASP基礎入門第十篇(ASP內(nèi)建對象Server)

標簽:孝感 遼陽 防城港 湖北 朝陽 平頂山 馬鞍山 四平

巨人網(wǎng)絡通訊聲明:本文標題《ASP編程入門進階(七):內(nèi)置對象Server》,本文關鍵詞  ASP,編程,入門,進階,七,內(nèi)置,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP編程入門進階(七):內(nèi)置對象Server》相關的同類信息!
  • 本頁收集關于ASP編程入門進階(七):內(nèi)置對象Server的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    青川县| 汉中市| 大足县| 肥西县| 呼和浩特市| 金乡县| 余姚市| 曲麻莱县| 肥西县| 分宜县| 临邑县| 大连市| 贡山| 阿荣旗| 定边县| 什邡市| 邳州市| 灵丘县| 大庆市| 新乐市| 平阴县| 敦化市| 西贡区| 虞城县| 鄂托克旗| 济宁市| 五莲县| 连城县| 上饶县| 广水市| 胶南市| 游戏| 互助| 囊谦县| 宜春市| 韩城市| 赤水市| 南阳市| 科技| 海原县| 称多县|