ASP內建對象—Request、Response 、Server、Application 、ObjectContent (二)

來源:互聯網
上載者:User

標籤:request   response   server   application   objectcontent   

Response (應答)對象

Request 對象,用於在HTTP請求期間,訪問任何用戶端瀏覽器傳遞給伺服器的資訊,包括通過URL傳遞的參數資訊、使用GET方法或POST方法傳遞的HTML表單資料、Cookie和使用者認證資訊等。


頁面重新導向,並傳遞參數(防亂碼處理)

Response.Redirect("~/modifyReader.aspx?key="+ Server.UrlEncode(key));

 

Cookie的儲存

  • 通過Response對象的Cookie集合儲存。

<span style="font-size:24px;"><span style="white-space:pre"></span>Response.Cookies["username"].Value= "徐鳳竹";</span>


  • 通過HttpCookie對象的執行個體儲存。

<span style="font-size:24px;"><span style="white-space:pre"></span>HttpCookiecookie = new HttpCookie("username","徐鳳竹");<span style="white-space:pre"></span>Response.Cookies.Add(cookie);</span>

  • 多值Cookie的儲存。
    • <span style="font-size:24px;">Response.Cookies["LoginInfo"]["username"] = "徐鳳竹";Response.Cookies["LoginInfo"]["password"]= "123456";</span>
  • <span style="font-size:24px;">    HttpCookie cookie = new HttpCookie("LoginInfo");    cookie.Values ["username"]="徐鳳竹";    cookie.Values["password"]= "123456";    Response.Cookies.Add(cookie);</span><span style="font-size:18px;"> </span>

緩衝頁面輸出

        Response 對象的Buffer屬性用於指定是否緩衝頁面輸出。如果緩衝頁輸出,只有當頁面的所有伺服器指令碼處理完畢,或者Flush、End方法被調用,伺服器才將輸出發送給用戶端。

        Buffer屬性必須在任何輸出之前進行設定,也就是說,應該在.asp文檔的首行調用Response.Buffer,當伺服器將資訊發送給用戶端就不能再設定Buffer屬性了。


Server 對象文法

Server 對象的文法格式:

Server[.property|method]

文法說明:

  • property,對象的屬性(ScriptTimeout屬性,指定指令碼逾時期限)。
  • method,方法
    • CreateObject,建立組件對象、
    • HTMLEncode,對字串進行HTML編碼。
    • MapPath,將相對路徑或虛擬路徑映射成伺服器上的實體路徑。
    • URLEncode,對字串進行URL編碼。

 

Session (會話)對象

         Session 對象可以用於儲存特定的使用者會話所需的資訊。這樣,當使用者在應用程式的頁面之間跳轉時,儲存在session對象中的變數不會丟失,而是在整個會話中始終存在。

        當使用者請求來自應用程式的web頁時,如果該使用者還沒有會話,則web伺服器將自動建立一個session對象。當會話到期或被放棄後,伺服器將終止該會話。

        我們希望後台管理在多長時間沒有操作的情況下,讓session失效,重新登入,可以使用session.timeout=5,以分鐘為單位,表示5分鐘之內沒有其他動作,就失效,或者在設定檔中配置<sessionStatetimeout="5" mode="InProc" />也可以。

 

簡單說說session的幾個方法的區別:

Session.clear():表示將會話中所有的session的鍵值都清空,但是session還是依然存在,同等於Session.RemoveAll()

Session[“admin”]=null:表示將制定的鍵的值清空,並釋放掉,和session[“admin”]=””不一樣,它清空了,但是session不釋放,同等於session.Remove(“name”);

Session.Abandon()就是把當前Session對象刪除了,下一次就是新的Session了。


        主要的不同之處在於當使用Session.Abandon時,會調用Session_End方法(InProc模式下)。當下一個請求到來時將激發Session_Start方法。而Session.Clear只是清除Session中的所有資料並不會中止該Session,因此也不會調用那些方法,Abandon方法用於主動結束會話,若沒有調用該方法,當會話逾時後,也會自動結束當前會話。

 

補充:

清除cookie

A、

<span style="font-size:24px;">tpCookie cookie =System.Web.HttpContext.Current.Request.Cookies.Get("tuser");cookie.Expires =DateTime.Now.AddDays(-1);System.Web.HttpContext.Current.Response.Cookies.Add(cookie);</span>

B、

<span style="font-size:24px;">tpCookie httpCookie =Request.Cookies["httpCookie"];httpCookie.Expires =DateTime.Now.AddDays(-1);Response.Cookies.Add(httpCookie);</span>

AB兩種方法都可以

Session 與Cookie的區別

  • Session是存在伺服器端的;而Cookie是存在用戶端的。
  • Session更不需要Cookie來支援和不會受瀏覽器端的設定影響,可記錄每個訪問者的資訊,獨立在伺服器端,比Cookie安全。
  • Session是存在記憶體中的,瀏覽器關閉它也就“死”了;Cookie是以檔案方式存在的,可以修改其“存活”時間。


Application (應用程式)對象

    使用Application對象可以在應用程式的所有使用者之間進行資料資訊共用,並在伺服器運行期間持久的儲存資料。

Application 對象的文法格式:

Application[.collection|method](variable)

文法說明如下:

  • collection,對象的集合。
    • Contents ,擷取應用程式中的靜態對象
    • StaticObject ,擷取應用程式中的靜態對象。
  • method,對象方法。
    • Lock ,鎖定應用程式物件。
    • Unlock ,解鎖應用程式物件 。
  • variable,對象的成員變數。

此外,Application對象還包括Application_OnStart(應用程式開始)和Application_OnEnd(應用程式結束)等兩個事件,這兩個事件都必須放在Global.asa檔案中。

 

在應用程式中共用資料

Application 對象的Contents集合和StaticObjects集合包含應用程式中所有的共用資訊資料,與Session對象的相應集合基本類似。


安全地共用資料

        因為多個使用者可以共用Application 對象,所以需要Lock方法和Unlock方法以確保多個使用者無法同時更改Application 對象。

        Lock方法用於阻止其他使用者修改儲存在Application 對象中的對象,以確保在同一時刻僅有一個使用者可以修改和存取Application 對象。

        Unlock 方法用於解除使用Lock方法鎖定的Application 對象,之後其他使用者才可以對該Application 對象中的對象進行訪問。如果使用者沒有顯示的調用Unlock方法,則伺服器將在ASP檔案結束或逾時後,解除對Application 對象的鎖定。

<span style="font-size:24px;">Application.LockApplication.Unlock</span> 

總結

  • ASP內建對象
  • Request 對象,包括讀取驗證欄位資訊、讀取Cookie資料、讀取表單或URL傳遞的資料、讀取伺服器環境變數等內容。
  • Response 對象,包括寫入Cookie資料、緩衝頁面輸出、頁面重新導向、將資料輸出到頁面等內容。
  • Server 對象,包括指令碼逾時期限、建立組件對象、對字串進行HTML或URL編碼、映射到伺服器實體路徑等。
  • Session 對象,包括讀取會話中的資料、讀取會話標識、刪除會話對象等內容。
  • Application 對象,包括在應用程式中共用資料、安全地共用資料等內容。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

ASP內建對象—Request、Response 、Server、Application 、ObjectContent (二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.