Asp.net内置对象之Request对象(概述及应用)(2)

不论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后输入问号“?”和查询字符串。例如: …/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集合对象中保存的常用信息变量如下:

Asp.net内置对象之Request对象(概述及应用)


复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjdggd.html