![ASP.NET从入门到精通(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/771/27111771/b_27111771.jpg)
2.2 Request对象
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P48_14168.jpg?sign=1739421605-0vCRtKLrY8YnlfhFTftv2brzOCEV17N5-0-9efee9cbf3618ecde4d508ee4c8549c2)
视频讲解
2.2.1 Request对象概述
Request对象用于检索从浏览器向服务器发送的请求中的信息,它提供对当前页请求的访问,包括标题、Cookie、客户端证书、查询字符串等,与HTTP协议的请求消息相对应。
同样,假如将用户请求服务器的过程比喻成客户到柜台买商品的过程,那么客户向销售员描述要购买商品(如功能、大小、颜色等)的同时,销售员也在记录客户的描述,这就相当于Request对象检索从浏览器向服务器发送的请求。
2.2.2 Request对象的常用属性和方法
Request对象可以获得Web请求的HTTP数据包的全部信息,其常用属性、方法及说明如表2.4和表2.5所示。
表2.4 Request对象的常用属性及说明
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-T49_11125.jpg?sign=1739421605-gfsjoad7SSNeV1CLjBdyNryxMwMdfHhw-0-964a24137b1c8e2430325606ea9bf668)
表2.5 Request对象的常用方法及说明
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-T49_11127.jpg?sign=1739421605-X8dNCWigIw1JKgMyleUxCRFpHN1fHGUT-0-110b459a0e30f6dbe6d8aad9bbc825a5)
2.2.3 获取页面间传送的值
Request方法通过Params属性和QueryString属性获取页面间传送的值。
【例2.4】获取页面间传送的值。(示例位置:mr\TM\02\04)
下面的示例主要通过Request对象的不同属性实现获取请求页的值。执行程序,单击“跳转”按钮,示例运行结果如图2.5所示。
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P49_11095.jpg?sign=1739421605-x63UHVME61QEfaEJR7yhcY65G4dqskzN-0-1321da7a38361e8442aa817c1084d7b8)
图2.5 输出二进制图像
程序实现的主要步骤如下。
(1)新建一个网站,默认主页为Default.aspx。在页面上添加一个Button控件,将ID属性设置为btnRedirect,将Text属性设置为“跳转”。在按钮的btnRedirect_Click事件中实现页面跳转并传值的功能。代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P49_86390.jpg?sign=1739421605-6kpMmS4lJ4O8BeeT3RGw8QHANvnCd1fP-0-b1210d6945ef5f638d0fddd1e749a5c3)
(2)在该网站中添加一个新页,将其命名为Request.aspx。在页面Request.aspx的初始化事件中用不同方法获取Response对象传递过来的参数,并将其输出到页面上。代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P50_86391.jpg?sign=1739421605-vBZUBP06vlMa6lvRsQ597u7G6lRmActG-0-ccc652a349a7d304f47bda86ce259f56)
说明
通过页面传递参数,参数的默认数据类型为字符串类型。例如,参数值为102,那么传递时默认为102。
2.2.4 获取客户端浏览器信息
用户能够使用Request对象的Browser属性访问HttpBrowserCapabilities属性获得当前正在使用哪种类型的浏览器浏览网页,并且可以获得该浏览器是否支持某些特定功能。下面就通过一个示例进行介绍。
【例2.5】获取客户端浏览器信息。(示例位置:mr\TM\02\05)
下面的示例主要通过Request对象的Browser属性获取客户端浏览器信息。执行程序,示例运行结果如图2.6所示。
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P50_14222.jpg?sign=1739421605-8iHIyasrroilfUrsesLR1yBRWmaOt67p-0-b0e614c4d44d1c166f102e72cef856c9)
图2.6 获取客户端浏览器信息
程序实现的主要步骤如下。
新建一个网站,默认主页为Default.aspx。在Default.aspx的Page_Load事件中先定义HttpBrowser-Capabilities的类对象,用于获取Request对象的Browser属性的返回值。代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P50_86394.jpg?sign=1739421605-DVTDQoby6ZRB6jVrGFOy6CjagK6uw6J7-0-3bca451374dd184f54a66f00860fd53c)
技巧
1. 获取客户端的IP地址
通过Request对象的UserHostAddress属性可以获取客户端IP地址。代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P51_90489.jpg?sign=1739421605-j2TY7oBlzegJko1YeIXMHngTOgIe8EsP-0-978ebe77414a465c37960fbd22ab23a2)
还可以通过Request对象的ServerVariables属性来取得远程客户端IP地址,其语法结构如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P51_90491.jpg?sign=1739421605-aodT1jWd95cUEGtxjWaE2TWcxV1kW5QU-0-565af92d56a6aac7e44ba9bce3924413)
ServerVariables属性的返回值包含了Web服务器的详细信息和当前页面的路径信息,其中REMOTE_ADDR代表客户端IP地址。
2. 获取当前页面路径
在开发网站时,如开发电子商城,由于用户登录可以发生在很多页面中,并不一定要求在一开始就登录,所以登录之后切换的页面不一定是首页,而是当前页,可以使用Request对象的CurrentExecutionFilePath属性获取当前页。切换页面并返回到当前页面的路径的代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P51_90493.jpg?sign=1739421605-jEPrv9sBSsNagxAWiKHcAgqzUr9DYNXM-0-c4126a13947802ee26d80b14b8bf92d6)