日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ASP入门(十三)-Server对象

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP入门(十三)-Server对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Server 對象用于處理服務器上的一些特殊任務,例如,創建組件實例、獲取文件路徑、執行ASP腳本文件等。

Server 對象是體現 ASP 強大功能的一個對象,之前介紹的對象都是針對獲取、請求以及簡單存儲信息而設計的,之所以說它強大,有兩個原因第一可以通過 Server 對象創建服務器上所具有的組件的實例,從而擴展 ASP 功能;第二 Server 對象可以執行服務器上的 ASP 文件,從而使得一些大型系統的架構變得簡單。

Server 的屬性

Server 對象只有一個屬性 ScriptTimeout,設置或返回當前頁面執行的超時時間()。

設定完畢后,當當前頁面在服務器上的執行時間超過這個時間,則會強制終止當前頁面的運行。因此如果某個頁面可能運行時間較長的話,就需要手動來增大這個值,來保證頁面可以正常執行完畢。

下面的例子(Server_ScriptTimeout.asp)演示如何設置及取回 ScriptTimeout 值,主要代碼如下:

<h3>如果不設定ScriptTimeout屬性,IIS中默認值為 <%=Server.ScriptTimeout%></h3> <h3>手動屬性設置為200秒,現在值為 <%=Server.ScriptTimeout%></h3>

顯示結果如下,IIS默認的 ScriptTimeout 屬性值為 90 秒。

Server 的方法

方法描述
CreateObject(progID)創建由 progID 標識的對象的一個實例
Execute(path)停止當前頁面的執行,把控制轉到 path 中指定的網頁。在該頁面執行完畢后,控制傳遞回原先的頁面,并繼續執行 Execute 后面的語句。
GetLastError()返回 ASPError 對象,描述發生錯誤的原因
HTMLEncode(string)對字符串進行 HTML 轉義
MapPath(path)返回在 Path 中指定的文件或資源的完整物理路徑和文件名
Transfer(path)停止當前頁面的執行,把控制轉到 path 中指定的頁面
URLEncode(string)對字符串進行 URL 轉義

CreateObject 方法,用于創建服務器上的組件的實例。最常用的就是創建數據庫操作組件的ADO的實例,我們手頭剛剛創建了一個 Access 數據庫 ServerInfo.accdb,這個數據庫有一個名為 ServerMethods 的表,表里面記錄了 Server 對象的方法(Method 字段)及描述信息(Description 字段),如下圖:

我們的例子(Server_CreateObject.asp)主要是讀取出表的全部內容,部分代碼如下:

<% Dim oConn, sConnString, sDBPath, oRs, sql '數據庫文件名 sDBPath = "ServerInfo.accdb" '數據連接字符串 sConnString = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & Server.MapPath(sDBPath) '創建 Connection 對象的實例 oConn Set oConn = Server.CreateObject("ADODB.Connection") '調用 oConn 的 Open 方法來打開連接 oConn.Open sConnString 'SQL語句,查詢所有記錄 sql = "SELECT * FROM ServerMethods" '建立 ADODB.RecordSet 對象實例 oRs Set oRs = Server.CreateObject("ADODB.RecordSet") '通過SQL語句獲得記錄集 oRs.Open sql, oConn Do While Not oRs.EOFResponse.Write("<tr>")Response.Write("<td>" & oRs("Method") & "</td>")Response.write("<td>" & oRs("Description") & "</td>")Response.Write("</tr>")oRs.MoveNext Loop oRs.Close Set oRs = Nothing oConn.Close Set oConn = Nothing %>

運行效果如下:

在這段代碼中我們用到了兩次 CreateObject,如下代碼:

... '創建 Connection 對象的實例 oCon Set oConn = Server.CreateObject("ADODB.Connection") ... '建立 ADODB.RecordSet 對象實例 oRs Set oRs = Server.CreateObject("ADODB.RecordSet") ...

在后面的介紹會詳細介紹數據庫方面的知識。


Execute、Transfer 方法

兩者的作用都是停止當前頁面的運行,并傳遞到另外一個一面,其不同在于,Execute 方法是在另外一個頁面執行完畢后回到現在的頁面繼續向下執行,而 Transfer 方法是在另外一個頁面執行完畢后即停止運行了。

我們下面的例子將說明 Execute 和 Transfer 方法的區別,我們 建立兩個 ASP 文件(File1.asp 和 File2.asp)

File1.asp 代碼如下:

... <h3>Server.Execute演示</h3> <% Response.Write("I am in File 1!<br>") Server.Execute("File2.asp") Response.Write("I am back in File 1!") %> <hr> <h3>Server.Transfer演示</h3> <% Response.Write("I am in File 1!<br>") Server.Transfer("File2.asp") Response.Write("I am back in File 1!") %> ...

File2.asp 代碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.Write("I am in File 2!<br>") %>

執行 File1.asp 后,效果如下:


Response.Redirect 和 Server.Transfer 方法比較

首先兩者都是將頁面的控制權轉移到另外的頁面進行處理。但是還是有不同的地方。

1、Redirect 方法是在HTTP頭中輸出代碼,讓瀏覽器重新請求要轉向的目標頁面,而 Server.Transfer 方法則是在服務器上直接將當前的控制權轉給目標頁面,在客戶端并不會意識到當前的頁面已經發生了變化。

2、Redirect 方法可以重定向到任何的 URL,而 Transfer 方法是在服務器上轉移控制權,因此只可以 Transfer 到本地服務器存在的頁面。

3、在使用 Transfer 方法時,會將當前頁面的事務以及 Request 各個集合相應傳遞到目標頁面,而 Redirect 方法僅僅是通知瀏覽器開啟一個新的請求。


URLEncode 和 HTMLEncode 方法

兩者都是對某個字符串進行轉義的操作。

下面的代碼(ServerEncode.asp)展示了兩個轉義方法的區別和效果:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!doctype html> <html> <head> <meta charset="utf-8"> <title>HTMLEncode 和 URLEncode 的應用</title> </head> <body> <p> <% Response.write(Server.HTMLEncode("The image tag: <img>")) %> </p> <p> <% Response.Write(Server.URLEncode("http://www.baidu.com")) %> </p> </body> </html> 在 Firefox 中運行效果如下:

在 Firefox 中“查看頁面源代碼”中我們發現 “<img>” 之所以能正常顯示,而不被識別成 HTML 標簽,是將 “<”符號轉義為”&lt;“,將”>”符號轉義為”&gt;“。

而 URLEncode 則是把空格轉化為+號,非字母數字符號轉義為十六進制表示。


MapPath 方法

在上面的 CreateObject 方法講解中,有一條語句用到了 MapPath 方法,代碼如下:

'數據庫文件名 sDBPath = "ServerInfo.accdb" '數據連接字符串 sConnString = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & Server.MapPath(sDBPath)

此方法用戶獲得服務器上指定文件在服務器上的物理路徑。例如上面提到的 ServerInfo.accdb 的路徑是啥?

我們通過實例(ServerMapPath.asp)展示,主要代碼如下:

<%=Server.MapPath("ServerInfo.accdb")%>

在 Firefox 中運行后,返回了服務器上的完整路徑,如下:


示例代碼下載

Server.rar

轉載于:https://www.cnblogs.com/pchmonster/p/4733211.html

總結

以上是生活随笔為你收集整理的ASP入门(十三)-Server对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。