媒介:
Request对象重要用于猎取来自客户端的数据,如用户填入表单的数据、保留在客户端的Cookie等。
一、Request对象概述
1、重要属性
ApplicationPath | 猎取服务器上asp.net运用顺序的假造运用顺序根途径 |
Browser | 猎取有关正在要求的客户端的阅读器功用的信息,该属性值为:HttpBrowserCapabilities对 象 |
ContentEncoding | 猎取或设置实体主体的字符集。该属性值为示意客户端的字符集Encoding对象 |
ContentLength | 指定客户端发送的内容长度,以字节为单元 |
ContentType | 猎取或设置传入要求的MIME内容范例。 |
Cookies | 猎取客户端发送的Cookie鸠合,该属性值为示意客户端的Cookie变量的 HttpCookieCollection对象 |
CurrentExecutionFilePath | 猎取当前要求的假造途径 |
FilePath | 猎取当前要求的假造途径 |
Files | 猎取客户端上载的文件鸠合。该属性值为HttpFileCollection对象,示意客户端上载的文件鸠合 |
Form | 猎取窗体变量鸠合 |
HttpMethod | 猎取客户端运用的HTTP数据传输要领(如:get、post或head) |
Item | 猎取Cookies、Form、QueryString或ServerVariables鸠合中指定的对象 |
Params | 猎取Cookies、Form、QueryString或ServerVariables项的组合鸠合 |
Path | 猎取当前要求的假造途径 |
PathInfo | 猎取具有URL扩展名的资本的附加途径信息 |
PhysicalApplicationPath | 猎取当前正在实行的服务器运用顺序的根目录的物理文件体系途径 |
PhysicalPath | 猎取与要求的URL相对应的物理文件途径 |
QueryString | 猎取HTTP查询字符串变量鸠合。该属性值为:NameValueCollection对象,它包含由客户端发送的查询字符串变量鸠合 |
RequestType | 猎取或设置客户端运用HTTP数据传输的体式格局(get或post) |
ServerVariables | 猎取Web服务器变量的鸠合 |
TotalBytes | 猎取当前输入流的字节数 |
Url | 猎取有关当前要求URL的信息 |
UserHostAddress | 猎取长途客户端的IP主机地点 |
2、重要要领
(1)MapPath(VirtualPath):将当前要求的URL中的假造途径virtualPath映射到服务器上的物理途径。参数virtualPath指定当前要求的假造途径,能够是绝对途径或相对途径。该要领的返回值为由virtualPath指定的服务器物理途径。
(2)SaveAs (Filename,includeHeaders):将http要求保留到磁盘。参数filename指定物理驱动器途径,includeHeaders是一个布尔值,指定是不是应将HTTP标头保留到磁盘。
二、Request对象的运用
1.读取窗体变量四种体式格局:
(1).运用Request.Form属性读取窗体变量
(2).运用Request.QueryString属性读取窗体变量
(3).运用Request.Params属性读取窗体变量
(4).经由过程服务器控件的属性直接读取窗体变量
(1).运用Request.Form属性读取窗体变量
HtmlForm控件的Method属性的默许值为post。在这类情况下,当用户提交网页时,表单数据将以HTTP标头的情势发送到服务器端。此时,能够运用Request对象的Form属性来读取窗体变量。如:txtUserName和txtPassword的文本框控件,则能够经由过程以下情势来读取它们的值: Request.Form["txtUserName"] ;Request.Form["txtPassword"]
(2)运用Request.QueryString属性读取窗体变量
假如将HtmlForm控件的Method属性设置为get,则当用户提交网页时,表单数据将附加在网址背面发送到服务器端。在这类情况下,能够运用Request对象的QueryString属性读取窗体变量。Request.QueryString["txtUserName"] ;Request.QueryString["txtPassword"]
(3)运用Request.Params属性读取窗体变量
不管HtmlForm控件的Method属性取什么值,都能够运用Request对象的Params属性来读取窗体变量的内容,如Request.Params["txtPassword"]或许Request.["txtPassword"],优先猎取GET体式格局提交的数据,它会在QueryString、Form、ServerVariable中都按先后顺序征采一遍。
Request:包含以上两种体式格局(优先猎取GET体式格局提交的数据),它会在QueryString、Form、ServerVariable中都按先后顺序征采一遍。Request.Params是一切post和get传过来的值的鸠合,request.params实际上是一个鸠合,它顺次包含request.QueryString、request.Form、request.cookies和request.ServerVariable。
注重:当运用Request.Params的时刻,这些鸠合项中最好不要有同名项。假如仅仅是须要Form中的一个数据,但却运用了Request而不是Request.Form,那末顺序将在QueryString、ServerVariable中也征采一遍。假如恰好QueryString或许ServerVariable内里也有同名的项,那末获得的就不是想要的值了。
(4)经由过程服务器控件的属性直接读取窗体变量
除了以上3种体式格局以外,也能够经由过程服务器控件的属性来直接读取窗体变量,这是猎取表单数据的最常常使用、最简朴的体式格局。比方: txtUserName.Text
2.读取查询字符串变量
在阅读网页时,常常看到阅读器地点栏中显现“xxx.aspx?id=8018”之类的URL,个中xxx.aspx示意要接见的.aspx网页,问号(?)背面跟的内容就是查询字符串,其作用是将变量的称号和值传送给这个ASP.NET文件来处置惩罚。查询字符串变量能够经由过程以下几种体式格局生成。
(1).若将HtmlForm控件的Method属性设置为get,则当用户提交网页时,窗体数据将作为查询字符串变量附在网址背面被发送到服务器端。
(2).运用<a>…</a>标记或HyperLink控件建立超文本链接时,能够将查询字符串放在目的URL背面,并运用问号“?”来分开URL与查询字符串
(3).挪用Response.Redirect要领时,若在网址参数背面附有变量名/值对,则翻开目的网页时这些变量值附在该网址背面被发送到服务器端。
(4).在阅读器地点栏中输入要求URL时,在URL后输入问号“?”和查询字符串。比方: http://…/t.aspx?Id=8018
在上述场所,都可经由过程Request.QueryString属性来检索查询字符串变量。
以下代码:
//在上岸页面 protected void Button1_Click(object sender, EventArgs e) { //上岸 //if (txtUserName.Text == "admin" && txtPwd.Text == "123") //{ // Session["Info"] = "随意一个值"; // Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text); //} //else //{ // Response.Redirect("Request2_test.aspx?error=上岸失利!"); //} /***********************************要领2****************************************/ //或许 if (txtUserName.Text == "admin" && txtPwd.Text == "123") { Response.Redirect("Request2_test.aspx?Info=" + txtUserName.Text + "&check=1"); } else { Response.Redirect("Request2_test.aspx?error=上岸失利!"); } }
在考证页面
代码以下:
protected void Page_Load(object sender, EventArgs e) { //考证页面 //if (Session["Info"] != null && Session["Info"].ToString() == "随意一个值") //{ // Response.Write("上岸胜利!<br>" + Request.QueryString["Info"] + ",迎接接见本站"); // //Response.Write("上岸胜利!<br>" + Request["Info"] + ",迎接接见本站"); // //Response.Write("登录胜利!<br>"+Request.Form["username"]+",迎接接见本站"); //} //else //{ // Response.Write("上岸失利"); //} /***************************************要领2**********************************/ if (Convert.ToInt32(Request["check"]) == 1) { Response.Write("上岸胜利!<br>" + Request.QueryString["Info"] + ",迎接接见本站"); } else { Response.Write("上岸失利"); } }
3.获得Web服务器端的体系信息
Request对象运用ServerVariables鸠合对象保留服务器端体系信息,这些信息变量包含在HTTP头部中随HTTP要求一同传送。运用Request对象的ServerVariables鸠合对象获得环境变量的语法以下: Request.ServerVariables[环境变量名]
ServerVariables鸠合对象中保留的常常使用信息变量以下:
代码以下:
Response.Write(Request.ServerVariables["LOCAL_ADDR"]);//远端服务器的地点 Response.Write("<br>"); Response.Write(Request.ServerVariables["Remote_ADDR"]);//阅读器地点主机的IP地点 Response.Write("<br>"); Response.Write(Request.Browser.Type.ToString());//阅读器的范例 Response.Write("<br>"); Response.Write(Request.Browser.Platform.ToString());//阅读器地点的平台 Response.Write("<br>"); Response.Write(Request.ServerVariables["url"]);
4.获得客户端阅读器信息
经由过程Request对象的Browser属性获得。须要应用Browser属性生成一个HttpBrowserCapabilities范例的对象实例。HttpBrowserCapabilities类具有的常常使用属性以下:
代码以下:
Response.Write("阅读器的范例是:" + Request.Browser.Browser.ToString()+"<br>"); Response.Write("阅读器的版本是:" + Request.Browser.Version.ToString()+"<br>"); Response.Write("阅读器的地点平台是:" + Request.Browser.Platform.ToString()+"<br>"); Response.Write("阅读器是不是支撑框架:" + Request.Browser.Frames.ToString()+"<br>"); Response.Write("阅读器是不是支撑Cookies:" + Request.Browser.Cookies.ToString()+"<br>"); Response.Write("阅读器是不是支撑Javascript:" + Request.Browser.JavaScript.ToString()+"<br>");
5.读取客户端Cookie
Cookie是在HTTP协定下服务器或剧本能够保护客户事情站上信息的一种体式格局。Cookie是由Web服务器保留在用户阅读器上的小文本文件,它能够包含有关用户的信息,这些信息以名/值对的情势储存在文本文件中。不管什么时候,只需用户衔接接到服务器,Web站点就能够接见Cookie信息。Cookie保留在用户的Cookie文件中,当下一次用户返回时,依然能够对它举行挪用。
Cookies鸠合是由一些Cookie对象构成的。Cookie对象的类名为HttpCookie。HttpCookie类的重要属性以下:
运用Cookie时,应注重以下几点
[1].运用Cookie保留客户端阅读器要求服务器页面的要求信息时,保留时候的是非取决于Cookie对象的Expires属性,能够根据须要来设置。若未设置Cookie的失效日期,则它们仅保留到封闭阅读器为止。若将Cookie对象的Expires属性设置为DateTime.MaxValue,则示意Cookie永远不会逾期。
[2].Cookie存储的数据量有所限定,大多数阅读器支撑的最大容量为4096字节,因而不要用Cookie来保留大批数据。
[3]. 并不是一切阅读器都支撑Cookie,而且数据是以明文情势保留在客户端计算机中,因而最好不要用Cookie来保留敏感的未加密数据。
[4].在ASP.NET中有两个Cookies鸠合,即:Response对象的Cookies鸠合和Request对象的Cookies鸠合,但二者的作用有所不同,经由过程前者能够将Cookie写入客户端,经由过程后者能够读取存储在客户端的Cookie。
以下操纵:
示比方下:
代码以下:
protected void Page_Load(object sender, EventArgs e) { HttpCookie c1=Request.Cookies["UserName"]; HttpCookie c2 = Request.Cookies["Password"]; if (c1 != null || c2 != null) { //当保留完Cookie以后(也就是说"保留或永远保留"),这个才输出,当第二次用一致阅读器翻开该网站的时刻就会输出 Response.Write(c1.Value + "迎接光临"); } } protected void Button1_Click(object sender, EventArgs e) { //提交 if (TextBox1.Text == "admin" && TextBox2.Text == "123") { Response.Write("迎接光临"+TextBox1.Text); Response.Cookies["UserName"].Value = TextBox1.Text; Response.Cookies["Password"].Value = TextBox2.Text; if (Dro pDo wn List 1.SelectedItem.Text == "永远保留") { //默许cookies失效时候是直到封闭阅读器 //Cookie保留永远 Response.Cookies["UserName"].Expires = DateTime.MaxValue; Response.Cookies["Password"].Expires = DateTime.MaxValue; } else { //Cookie永不保留 Response.Cookies["UserName"].Expires = DateTime.Now; Response.Cookies["Password"].Expires = DateTime.Now; } } }
当我们再次翻开该网站(统一阅读器)的时刻,就会弹出“admin迎接光临"
【相干引荐】
1. 谈谈Request和Response这两个对象的运用
2. 分享一个Request对象小案例
3. 分享asp中request对象五个猎取客户端材料的要领
4. 详解ASP.NET 体系对象之Request
以上就是总结Asp.net内置对象之Request对象运用实例的细致内容,更多请关注ki4网别的相干文章!