標籤:request response server application objectcontent
Response (應答)對象
Request 對象,用於在HTTP請求期間,訪問任何用戶端瀏覽器傳遞給伺服器的資訊,包括通過URL傳遞的參數資訊、使用GET方法或POST方法傳遞的HTML表單資料、Cookie和使用者認證資訊等。
頁面重新導向,並傳遞參數(防亂碼處理)
Response.Redirect("~/modifyReader.aspx?key="+ Server.UrlEncode(key));
Cookie的儲存
<span style="font-size:24px;"><span style="white-space:pre"></span>Response.Cookies["username"].Value= "徐鳳竹";</span>
<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>
緩衝頁面輸出
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,對象的集合。
- StaticObject ,擷取應用程式中的靜態對象。
此外,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 (二)