1. Request:可以訪問關於請求Web頁面的個人或進程的信息
2. Response:提供一種方法,以準確控制如何將響應發送回發出請求的人那裏
3. Server:提供一系列有用的與Web相關的實用程序。
4. Application:爲經常使用的信息提供了一個有用的Web站點存儲位置
5. Session:可以爲每個用戶的會話存儲信息。
Request
Request可以訪問關於請求Web頁面的個人或進程的信息。Request對象可以從個人的Web瀏覽器向我們有效的傳遞消息。
比較有用的兩個屬性爲:
Cookies:通過這個屬性可以查看訪問者以前在本站的cookies
QueryString:返回任何使用GET傳輸到頁面的參數。
Response
Response提供一種方法,以準確控制如何將響應發送回發出請求的人那裏。Response對象可以訪問即將發送回請求Web瀏覽器的http響應。
常用屬性:
1. Redirect:它將用戶重定向到另一個頁面
2. Write:將字符串寫入html流。
Server
Server提供一系列有用的與Web相關的實用程序。
常用屬性:
MapPath:此屬性帶有一個虛擬路徑的參數
比如MapPath(“/webapp/myfile.aspx”),返回該文件在物理磁盤的準確位置
狀態處理:
包括Application,Session,Cookies
主要要注意的有狀態的作用域,狀態存儲位置,狀態如何改變等。
Application
Application爲經常使用的信息提供了一個有用的Web站點存儲位置
Application中的信息可以被網站的所有頁面訪問。
Application的初始配置:
在應用程序啓動時配置初始狀態,在Global.asax中配置
protected void Application_Start(Object sender, EventArgs e)
{
Application["UserCount"] = 0;
}
使用Lock和Unlock避免兩個頁面同時修改狀態
Application.Lock();
Application["UserCount"] = (int)Application["UserCount"]+1;
Application.UnLock();
Application幾點說明:
1. 它用於經常使用的數據,如果只是偶爾使用,可以把信息存儲在磁盤的文件中,大部分情況下,web.config文件可以完成這個任務。
2. Application對象是一個集合對象,它除了包含文本信息外,也可以存儲對象。
3. 如果站點開始就有很大的通信量,則使用Web.config文件,不要用Application狀態
Session
它可以爲每個用戶的會話存儲信息。默認的超時時間爲20分鐘,用戶關閉網頁後自動結束。
常用屬性:
Abandon():此方法結束當前的會話,清楚會話中的所有信息。
Clear():清除會話中所有信息,不結束會話。
IsNewSession:如果在用戶訪問當前頁面時創建了繪畫,則此屬性返回true,在使用會話前需要使用某些數據初始化會話時,該屬性很有用。
TimeOut:此屬性在會話終於之前以分鐘爲單位獲取和設置閒置時間。默認時間爲20分鐘
if (Session["test"]==null)
{
Session["test"] = 1;
}
else
{
Session["test"] = (int)Session["test"]+1;
}
Session說明:
1. 存儲在Web服務器端,
2. 實際信息與每一位訪問者相關
3. 是對象集合,可以存儲對象
4. 不要在會話中存儲不常時間的東西,不要在會話中存儲大量東西
Cookies
存儲與每一位用戶相關的小段信息,通常也與網站相關。存儲在用戶的硬盤上,通常期限比Session的期限大。
Cookies的生存期設置
DateTime dt = DateTime.Now;
TimeSpan timeSpan = new TimeSpan(30,0,0,0); //30天
if (Request.Cookies["test"]!=null)
{
Request.Cookies["test"].Expires = dt.Add(timeSpan);
}
cookies例子
if (Request.Cookies["test"]==null)
{
int i = 1;
HttpCookie c = new HttpCookie("test");
c.Value = "1";
Request.Cookies.Add(c);
}
else
{
int k = Convert.ToInt32(Request.Cookies["test"].Value)+1;
Request.Cookies["test"].Value = k.ToString();
}