ASP.Net Web开发基础 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Request对象

RequestHttpRequest类的一个实例。通过使用该对象,ASP.NET能够读取客户端浏览器在Web 请求期间发送的HTTP值,包括用PostGet方法提交的表单数据、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对象的使用。