Request对象
Request是HttpRequest类的一个实例。通过使用该对象,ASP.NET能够读取客户端浏览器在Web 请求期间发送的HTTP值,包括用Post或Get方法提交的表单数据、Cookies和页面控件的状态信息等。
这里讲一下Request对象的几个常用功能:
获取URL传值
通过Request.QueryString["parm"],获取上一个页面传递来的字符串参数的值.例如页面1中创建链接指向页面readparm,并用QueryString来查询变量的值:
<a href="http://localhost/readparm.aspx?page=4"> 查看参数值</a>
在页面readparm中接收到从页面1中传过来的变量:
<Script Language="C#" Runat="Server">
void Page_Load(object sender, System.EventArgs e)
{
Response.Write("变量page的值:" + Request.QueryString["page"] +"<br>");
}
</Script>
运行上面的代码,结果如下:
变量page的值:4
获取客户端集合的值
客户端集合常见的有Form,Cookies,SeverVariables等。通常Request.Collection["Variable"] 和 Request["Variable"]两种方法都是允许的,不过后面一种省略了集合名称,在执行中Request对象将会按照QueryString、Form、Cookies、SeverVaiables的顺序进行查找,直至发现关键字并返回其值;如果没有发现其值,方法则返回空值Null。建议最好使用中指定Collection,否则过多地搜索可能会降低执行的效率。例如下面的例子:
<Script Language="C#" Runat="Server">
void Page_Load(object sender, System.EventArgs e)
{
Response.Write("1,TextBox1的值:" + Request.Form["TextBox1"].text +"<br>");
Response.Write("2,TextBox1的值:" + Request["TextBox1"].text +"<br>");
Response.Write("3,mycookie的值:" + Request.Cookies["mycookie"].Value +"<br>");
Response.Write("4,发出请求的远程主机的IP地址:" + Request.ServerVariables["Remote_Addr"] +"<br>");
}
</Script>
代码运行后,第1行和第2行的值是一致的,第3行将输出mycookie的值,第4行将输出本地客户端的ip地址。
获取客户端数据
获取客户端的主机名称和IP地址:
Response.Write("<p>客户端主机名为:" + Request.UserHostName);
Response.Write("<p>客户端IP地址为:" + Request.UserHostAddress);
Request对象有一个Brower的属性,可以获取客户端请求所使用的浏览器信息,比如操作系统平台、版本、支持的特性能,以便服务器端有针对的进行处理,例如。
Response.Write("<p>客户端所使用的浏览器为:" + Request.Browser.Browser + Request.Browser.Version);
运行3_3_request.aspx,例子页面中提交用户名和密码,在3_3_confirm页面中用request方法获取提交的数据和客户端浏览器的信息;通过调试代码,学习使用Request对象的使用。