Response物件
主要運用於資料從伺服器傳送到瀏覽器,可以輸出資料、頁面跳轉、各個網頁之間傳引數等操作。
以下講解幾個常用例子:
在頁面中輸出資料
主要透過Write 、WriteFile方法輸出資料。
Response.Write("hello");//在網頁上顯示hello
Response.WriteFile(@"F:\\hello.txt");//在網頁上開啟hello.txt並顯示
Response.Write("<script>alert("hello")</script>");//彈出一個框顯示hello
Response.Write("<script>alert("跳轉");location.href(’webForm1.aspx’)</script>");//彈出一個框顯示“跳轉”並且網頁跳轉到webForm1.aspx。
頁面跳轉並傳參
Response.Redirect("~/WebForm2.aspx"); //使用Redirect方法重定向,跳轉到WebForm2.aspx 頁面
在頁面重定向URL時傳引數,用“?”分隔開,比如:地址?引數&引數&引數。。。
string name=”chen”;
string sex=”boy”;
Response.Redirect("~/WebForm2.aspx?Name="+name+”&Sex=”+sex)
注意:需要另一個Request物件接收,才能在webForm.aspx上顯示。
輸出二進位制圖片
使用BinaryWrite顯示二進位制資料。
先新增名稱空間,Using System.IO;
FileStream str=new FileStream(Server.MapPath(“pic.gif”).FileMode.Open);
//開啟圖片,並儲存在檔案流中
long FileSize=str.Length;//獲取檔案流長度
byte byt[] =new byte(FileSize);//定義一個數組,用於後面存位元組
str.Read(byt,0,FileSize);//讀取位元組流,並轉化為二進位制,儲存在byt陣列中。
str.Close();
Response.BinaryWrite(byt);//讀取二進位制
另外
Response.Write(“<script>windows.Close();</script>”);//直接關閉視窗
Request物件
主要是檢索瀏覽器向伺服器發出的請求資訊。就相當於獲取上面Response從伺服器傳送到瀏覽器的訊息。
獲取網頁見傳遞的引數。
比如:上面傳參的
Response.Redirect("~/WebForm2.aspx?Name="+name)
獲取:
Response.Write(“使用Request[string key 方法]”+Request[Name]);
Response.Write(“使用Request.Params[string key 方法]”+Request.Params[Name]);
Response.Write(“使用Request.QueryString[string key 方法]”+Request.QueryString[Name]);
獲取客戶端瀏覽器的資訊
主要使用Request的Browser物件,訪問HttpBrowserCapabilities屬性獲取當前的相關瀏覽器資訊。
HttpBrowserCapabilities bb=Request.Browser;
Response.Write(“客戶端瀏覽器相關資訊”);
Response.Write(“型別:”+bb.Type);
Response.Write(“名稱:”+bb.Browser;
Response.Write(“版本:”+bb.Version);
Response.Write(“操作平臺:”+bb.Platform);
Response.Write(“是否支援框架:”+bb.Frames);
Response.Write(“是否支援表格:”+bb.Tables);
Response.Write(“是否支援Cookies:”+bb.Cookies);
Response.Write(“遠端客戶端IP地址:”+bb.UserHostAddress);
....
Application物件
主要是共享一個程式級的先關資訊,比如多個使用者共享一個Application物件。
使用Application實現全域性的儲存和讀取
由於應用程式中的所有頁面都可以訪問這個全域性變數,所以要對其物件加上,加鎖和解鎖操作來保證資料的一致性。
比如:
Application.Lock();//加鎖
Application[name]=”chen”;
Application.UnLock();//解鎖
常常運用於網站訪問計數器和網頁聊天。
網站訪問計數器:
1:
新增一個全域性應用程式類(Global.asax),新增後會自動出現
void Application_Start(object sender, EventArgs e)
void Session_Start(object sender, EventArgs e)
void Session_End(object sender, EventArgs e)
...事件,分別在以上三個事件新增方法
{ Application[“count”]=0;//應用程式啟動時執行 }
{ Application.Lock();//加鎖
Application[“count”]=(int)Application[“count”]+1;
Application.UnLock();//解鎖 }
//會話啟動時執行
Application[“count”]=(int)Application[“count”]-1;
//會話關閉時執行:
2:
所設定的網頁
protected void Page_Load(object sender, EventArgs e)
{ Label1.Text = "訪問量:" + Application["count"]; }
Response物件
主要運用於資料從伺服器傳送到瀏覽器,可以輸出資料、頁面跳轉、各個網頁之間傳引數等操作。
以下講解幾個常用例子:
在頁面中輸出資料
主要透過Write 、WriteFile方法輸出資料。
Response.Write("hello");//在網頁上顯示hello
Response.WriteFile(@"F:\\hello.txt");//在網頁上開啟hello.txt並顯示
Response.Write("<script>alert("hello")</script>");//彈出一個框顯示hello
Response.Write("<script>alert("跳轉");location.href(’webForm1.aspx’)</script>");//彈出一個框顯示“跳轉”並且網頁跳轉到webForm1.aspx。
頁面跳轉並傳參
Response.Redirect("~/WebForm2.aspx"); //使用Redirect方法重定向,跳轉到WebForm2.aspx 頁面
在頁面重定向URL時傳引數,用“?”分隔開,比如:地址?引數&引數&引數。。。
string name=”chen”;
string sex=”boy”;
Response.Redirect("~/WebForm2.aspx?Name="+name+”&Sex=”+sex)
注意:需要另一個Request物件接收,才能在webForm.aspx上顯示。
輸出二進位制圖片
使用BinaryWrite顯示二進位制資料。
先新增名稱空間,Using System.IO;
FileStream str=new FileStream(Server.MapPath(“pic.gif”).FileMode.Open);
//開啟圖片,並儲存在檔案流中
long FileSize=str.Length;//獲取檔案流長度
byte byt[] =new byte(FileSize);//定義一個數組,用於後面存位元組
str.Read(byt,0,FileSize);//讀取位元組流,並轉化為二進位制,儲存在byt陣列中。
str.Close();
Response.BinaryWrite(byt);//讀取二進位制
另外
Response.Write(“<script>windows.Close();</script>”);//直接關閉視窗
Request物件
主要是檢索瀏覽器向伺服器發出的請求資訊。就相當於獲取上面Response從伺服器傳送到瀏覽器的訊息。
獲取網頁見傳遞的引數。
比如:上面傳參的
string name=”chen”;
Response.Redirect("~/WebForm2.aspx?Name="+name)
獲取:
Response.Write(“使用Request[string key 方法]”+Request[Name]);
Response.Write(“使用Request.Params[string key 方法]”+Request.Params[Name]);
Response.Write(“使用Request.QueryString[string key 方法]”+Request.QueryString[Name]);
獲取客戶端瀏覽器的資訊
主要使用Request的Browser物件,訪問HttpBrowserCapabilities屬性獲取當前的相關瀏覽器資訊。
HttpBrowserCapabilities bb=Request.Browser;
Response.Write(“客戶端瀏覽器相關資訊”);
Response.Write(“型別:”+bb.Type);
Response.Write(“名稱:”+bb.Browser;
Response.Write(“版本:”+bb.Version);
Response.Write(“操作平臺:”+bb.Platform);
Response.Write(“是否支援框架:”+bb.Frames);
Response.Write(“是否支援表格:”+bb.Tables);
Response.Write(“是否支援Cookies:”+bb.Cookies);
Response.Write(“遠端客戶端IP地址:”+bb.UserHostAddress);
....
Application物件
主要是共享一個程式級的先關資訊,比如多個使用者共享一個Application物件。
使用Application實現全域性的儲存和讀取
由於應用程式中的所有頁面都可以訪問這個全域性變數,所以要對其物件加上,加鎖和解鎖操作來保證資料的一致性。
比如:
Application.Lock();//加鎖
Application[name]=”chen”;
Application.UnLock();//解鎖
常常運用於網站訪問計數器和網頁聊天。
網站訪問計數器:
1:
新增一個全域性應用程式類(Global.asax),新增後會自動出現
void Application_Start(object sender, EventArgs e)
void Session_Start(object sender, EventArgs e)
void Session_End(object sender, EventArgs e)
...事件,分別在以上三個事件新增方法
void Application_Start(object sender, EventArgs e)
{ Application[“count”]=0;//應用程式啟動時執行 }
void Session_Start(object sender, EventArgs e)
{ Application.Lock();//加鎖
Application[“count”]=(int)Application[“count”]+1;
Application.UnLock();//解鎖 }
//會話啟動時執行
void Session_End(object sender, EventArgs e)
{ Application.Lock();//加鎖
Application[“count”]=(int)Application[“count”]-1;
Application.UnLock();//解鎖 }
//會話關閉時執行:
2:
所設定的網頁
protected void Page_Load(object sender, EventArgs e)
{ Label1.Text = "訪問量:" + Application["count"]; }