內建物件Server

2021-04-06 13:11:15 字數 4396 閱讀 6752

server 物件提供對伺服器上的方法和屬性的訪問 , 其中大多數方法和屬性是作為實用程式的功能服務。(iis help翻譯)

有了 server 物件,你就可以在伺服器上啟動 activex 物件例程,並使用 active server 服務提供象 html 和 url 編碼這樣的函式。

一,script.scripttimeout

在指令碼執行超過一段時間之後,即作超時處理。

伺服器一般的預設指令碼執行時間是90秒。

你可以從「internet資訊服務」中「預設web站點」的屬性彈出框中看出,你也可以自己設定。

呵呵,上面的可不是,900秒了。

應該是「主目錄」標籤中的「配置」對話方塊中,winxp一樣。

在理解指令碼執行時間之前,先來看乙個程式,主要功能就是進行計算網頁執行時間的。

程式**:

[ 複製**到剪貼簿 ]

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

1,time.asp

程式**:

[ 複製**到剪貼簿 ]

<%startime=timer()%>

到下面看執行的時間

<%

for i= 1 to 5000

response.write("")

next

%>

當然中間還可以新增其它內容。

<%endtime=timer()%>

<%=formatnumber((endtime-startime)*1000,3)%>毫秒

那如果上面的程式變成for i= 1 to 5000000

呵呵,是不是機器快反應不過來的感覺,那這個就是指令碼的執行時間了。

為了讓程式能很好的執行,就該把指令碼執行時間放長了。

怎麼放長?把預設的改?呵呵,當然不是:)

程式**:

[ 複製**到剪貼簿 ]

<%server.scripttimeout=110%>

時間的設定當然要是比預設90秒大的,現在的**就是:指定伺服器處理指令碼在 110 秒後超時。

還有,指令碼時間的確定要看自身的程式了,一般情況100秒左右也差不多了,即使能執行出來,可能**網頁的人早就把它叉叉了。

以上的scripttimeout就是server物件唯一屬性了

二,server.htmlencode

htmlencode就是server物件的其中乙個方法了。它允許你對特定的字串進行 html 編碼,雖然 html 可以顯示大部分你寫入 asp 檔案中的文字,但是當你需要實際包含 html 標記中所使用的字元,就會遇到問題。這是因為,當瀏覽器讀到這樣的字串時,會試圖進行解釋。

還是看乙個程式,我想在頁面顯示「 」這樣的**(附: 是空格的**)

那麼當我進行書寫的時候你會發現,瀏覽器已經給我解釋了的。

程式**:

[ 複製**到剪貼簿 ]

空格的**是: 

你會發現上面的**都被執行了。

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

2,htmlencode.asp

程式**:

[ 複製**到剪貼簿 ]

<%response.write ("這是沒有採用 htmlencode 方法的測試。

這裡就另起一行,說明**被執行。 ")%>

<%response.write server.htmlencode("這是對 htmlencode 方法的測試。

這裡應該不會另起一行,也就是**沒有被執行了。 ")%>

這在許多**,論壇都存在的一些bug,不信你可以到各論壇試試:敲入 就是沒有,急死你呢:)當然htmlencode只是其中的乙個原因,最主要的還是ubb**的轉換。不過關於這點我也已經除錯解決了。

除錯位址參看 

當然經典論壇不存在這問題,要不你也不會看到效果了。

三,server.urlencode

正如 htmlencode 方法使客戶可以將字串翻譯成可接受的 html 格式一樣,server 物件的 urlencode 方法則是根據 url 規則對字串進行正確編碼,當字串資料以 url 的形式傳遞到伺服器時,在字串中不允許出現空格,也不允許出現特殊字元。為此,如果你希望在傳送字串之前進行 url 編碼,可以使用 server.urlencode 方法。

為方便起見,我們先看為處理送交,然後處理接受的效果。

3,urlencode.asp

程式**:

[ 複製**到剪貼簿 ]

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

接受url中的值(沒有處理接受值,發現值被解釋了): <%=request.querystring("cnbruce")%>

接受url中的值(進行了urlencode編碼,不會執行): <%=server.urlencode(request.querystring("cnbruce"))%>

當然你會發現,雖然不執行了,但會出現「<」變成了「%3c」,「>」變成了「%3e」,那這就是因為

沒有在傳送之前處理。

不過,我們還可以通過replace函式將這些特殊**再逆轉過來。

4,vurlencode.asp

程式**:

[ 複製**到剪貼簿 ]

<%

function tihuan(what)

tihuan=what

if not isnull(what) then

tihuan=replace(tihuan,"%3c","<")

tihuan=replace(tihuan,"%3d","=")

tihuan=replace(tihuan,"%3e",">")

tihuan=replace(tihuan,"%26","&")

tihuan=replace(tihuan,"空格我不知道,呵呵。哪個告訴我下:)"," ")

tihuan=replace(tihuan,"%3b",";")

tihuan=replace(tihuan,"%22",""")

tihuan=replace(tihuan,"%2b","+")

tihuan=replace(tihuan,"%2f","/")

end if

end function

%>

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

接受url中的值(沒有處理接受值,發現值被解釋了): <%=request.querystring("cnbruce")%>

接受url中的值(進行了urlencode編碼,不會執行): <%=tihuan(server.urlencode(request.querystring("cnbruce")))%>

呵呵,其實上面我是做的無用功啦,真正應該是在

傳送之前就該處理下的,不過對學習該方法的舉例確是個好方法:)

相信看過我寫的《dw2asp系列》的朋友,都卡在這個上了。dw畢竟是入門的好東西,但要系統學asp程式設計,對這個就該好好認識了解下。

指定的相對或虛擬路徑,

對映到伺服器上相應的物理目錄上。

用法,也就是語法了,如下:

程式**:

[ 複製**到剪貼簿 ]

不檢查返回的路徑是否正確或在伺服器上是否存在。

當然這可以和request.servervariables連起來使用看看。

程式**:

[ 複製**到剪貼簿 ]

測試我的位址

注意測試的位址和根目錄下的位址,對應的是同一資料夾(這就是虛擬主機),6to23之類是不會相同的。

五,server.creatobject

server.createobject 這個方法恐怕是 asp 中最為實用,也是最強勁的功能了。它可用於建立已經註冊到伺服器上的 activex 元件例項。這是乙個非常重要的特性,因為通過使用 activex 元件能夠使你輕鬆地擴充套件 activex 的能力,正是使用了 activex 元件,你可以實現至關重要的功能,譬如資料庫連線、檔案訪問、廣告顯示和其他 vbscript 不能提供或不能簡單地依靠單獨使用 activex 所能完成的功能。也正是因為這些元件才使得 asp 具有了強大的生命力。

呵呵,不過,在我們沒有談及連線資料庫之前,這個先空著,「要得好,到臨了」:)等我們接觸到資料庫連線的時候再說不遲。

恩,那今天就主要把server物件學習了下,感覺好象是每個都有用的,重要啊。

還有,需要說明的,如果您從本處**,發現和本源件有差錯,比如**

、 

<、 

>等等,根本就是被執行了的。都說明您的站點存在著這些問題。

asp內建物件 server 詳解

server 物件 server 物件提供對伺服器上的方法和屬性的訪問。其中大多數方法和屬性是作為實用程式的功能服務的。語法server.property method 屬性scripttimeout scripttimeout 屬性指定指令碼在結束前最大可執行多長時間。當處理伺服器元件時,超時限制...

ASP程式設計入門高階(七) 內建物件Server

server 物件提供對伺服器上的方法和屬性的訪問 其中大多數方法和屬性是作為實用程式的功能服務。iis help翻譯 有了 server 物件,你就可以在伺服器上啟動 activex 物件例程,並使用 active server 服務提供象 html 和 url 編碼這樣的函式。一 script....

PHP 內建SERVER陣列詳解

server php self 當前正在執行指令碼的檔名,與 document root相關。server ar 傳遞給該指令碼的引數。server argc 包含傳遞給程式的命令列引數的個數 如果執行在命令列模式 server gateway inte ce 伺服器使用的 cgi 規範的版本。例如...