asp.net对象——Response、Request
2016-07-17 23:26
369 查看
百科定义:
Request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
Response对象用于动态相应客户端请示,控制发送给用户的信息,并将动态生成响应。
简单理解:
Request请求对象,包含了访问网站时发起请求的所有参数
Response响应对象,包含了请求之后网站返回的所有响应信息。
理解之后更重要的还是需要多多练习,熟练掌握哪些对象应该在哪些时候如何运用
Request对象常用属性表:
实例展示:获取QueryString值
在第一个页面创建一个链接,指向第二个页面,并用QueserString查询两个变量
在第二个页面接受从第一个页面传过来的变量。在asp.net后台写入
显示结果
上面的例子可以成功的得到QueryString值。
用类似的方法,可以获取Form,Cookies,SeverVaiables的值。调用的方法都是Request.Collection["Variable"]
Collection包括QueryString,Form,Cookies,SeverVaiables四种集合。
Variable为查询的关键字,这里的Collection可以省略。
不过省略Collection后,会按照上面四种集合的先后顺序查找,降低了程序的执行效率。
Request对象常用方法表:
实例展示:获取文件的物理路径
Response对象常用属性表:
实例展示:使用缓冲区
由于Response对象的BufferOutput属性默认为True,所以要输出到客户端的数据都暂时存储在缓冲区内
等到所有的事件程序,以及所有的页面对象全部解译完毕后
才将所有在缓冲区中的数据送到客户端的浏览器。
下面的例子将演示缓冲区是如何工作的。
上述程序代码实例首先在“Page_Load”事件中送出“缓存清除前”这一行,此时的数据存在缓冲区中。
接着使用Response对象的Clear方法将缓冲区的数据清除,所以刚刚送出的字符串已经被清除。
然后IIS开始读取HTML组件的部分,并将结果送至客户端的浏览器。
由执行结果只出现“缓存已清除”可知,使用Clear方法之前的数据并没有出现在浏览器上,所以程序开始时是存在缓冲区内的。
在程序的Page_load事件的最前面加入Response.BufferOutput=false"
会发现,执行的结果为:“缓存清除前 缓存已清除”
结果并没有因为使用clear方法而将缓冲区的数据清除,这表明数据是直接输出的。
Response对象常用方法表:
实例展示:使用Response.End方法调试程序
End方法可以停止当前页面的执行,基于这个原因,可以结合Response.write方法输出当前页面上的某个变量、数组值
显示结果
在上面的代码中的两个write之间加入Response.End()
这时,结果只会显示N=4
利用此方法可在程序中进行调试。
我的生活只讲给你听
Request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
Response对象用于动态相应客户端请示,控制发送给用户的信息,并将动态生成响应。
简单理解:
Request请求对象,包含了访问网站时发起请求的所有参数
Response响应对象,包含了请求之后网站返回的所有响应信息。
理解之后更重要的还是需要多多练习,熟练掌握哪些对象应该在哪些时候如何运用
Request对象常用属性表:
属性 | 说明 | 属性值 |
QueryString | 获取HTTP查询字符串变量集合 | NameValueCollection对象 |
Path | 获取当前请求的虚拟路径 | 当前请求的虚拟路径 |
UserHostAddress | 获取远程客户端的IP主机地址 | 远程客户端的IP地址 |
Browser | 获取有关正在请求的客户端的浏览器功能 | HttpBrowserCapabilities对象 |
在第一个页面创建一个链接,指向第二个页面,并用QueserString查询两个变量
<a href ="Request属性测试2.aspx?ID=6&Name=Wang">查看</a>
在第二个页面接受从第一个页面传过来的变量。在asp.net后台写入
Response.Write("变量ID的值:" + Request.QueryString["ID"] + "<br>"); Response.Write("变量Name的值:" + Request.QueryString["Name"]);
显示结果
上面的例子可以成功的得到QueryString值。
用类似的方法,可以获取Form,Cookies,SeverVaiables的值。调用的方法都是Request.Collection["Variable"]
Collection包括QueryString,Form,Cookies,SeverVaiables四种集合。
Variable为查询的关键字,这里的Collection可以省略。
不过省略Collection后,会按照上面四种集合的先后顺序查找,降低了程序的执行效率。
Request对象常用方法表:
方法 | 说明 |
BinaryRead | 执行对当前输入流进行指定字节数的二进制读取 |
MapPath | 当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径 |
Response.Write(Request.MapPath("Request属性测试1"));
Response对象常用属性表:
属性 | 说明 | 属性值 |
BufferOutput | 获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页面之后将其发送 | 如果缓冲到了客户端的输出,则为True,否则为False。默认为True |
Cache | 获取web页的缓存策略(过期时间、保密性、变化子句) | 包含有关当前相应的缓存策略信息的HttpCachePolicy对象 |
Charset | 获取或设置输出流的HTTP字符集 | 输出流的HTTP字符集 |
IsClientConnected | 获取一个值,通过该值指示客户端是否仍连接在服务器 | 如果客户端当前仍在连接,则为True,否则为False |
由于Response对象的BufferOutput属性默认为True,所以要输出到客户端的数据都暂时存储在缓冲区内
等到所有的事件程序,以及所有的页面对象全部解译完毕后
才将所有在缓冲区中的数据送到客户端的浏览器。
下面的例子将演示缓冲区是如何工作的。
<% Response.Write("缓存已清除" + "<br>"); %> <script language="c#" runat="server"> void Page_load(Object sender, EventArgs e) { Response.Write("缓存清除前"+"<br>"); Response.Clear(); } </script>
上述程序代码实例首先在“Page_Load”事件中送出“缓存清除前”这一行,此时的数据存在缓冲区中。
接着使用Response对象的Clear方法将缓冲区的数据清除,所以刚刚送出的字符串已经被清除。
然后IIS开始读取HTML组件的部分,并将结果送至客户端的浏览器。
由执行结果只出现“缓存已清除”可知,使用Clear方法之前的数据并没有出现在浏览器上,所以程序开始时是存在缓冲区内的。
在程序的Page_load事件的最前面加入Response.BufferOutput=false"
会发现,执行的结果为:“缓存清除前 缓存已清除”
结果并没有因为使用clear方法而将缓冲区的数据清除,这表明数据是直接输出的。
Response对象常用方法表:
方法 | 说明 |
Write | 将指定的字符串或表达式的结果写到当前的HTTP输出 |
End | 停止页面的执行并得到相应的结果 |
Clear | 用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法 |
Flush | 将缓存中的内容立即显示出来,该方法有一点和Clear方法一样,它在脚本前面没有将Buffer属性设置为True时会出错,和End方法不同的是,该方法调用后,该页面可继续执行 |
Redirect | 使浏览器立即重定向到程序指定的URL |
End方法可以停止当前页面的执行,基于这个原因,可以结合Response.write方法输出当前页面上的某个变量、数组值
<form id="form1" method="post" runat="server"> <div> 输入一个数:<asp:TextBox ID="txtVar" runat="server"></asp:TextBox> <asp:Button ID="btnSubmit" runat="server" Text="计算该值的平方值" OnClick="btnSubmit_Click" /> </div> </form> <script language="C#" runat="server"> void btnSubmit_Click(object sender, EventArgs e) { int N = int.Parse(Request.Form["txtVar"].ToString()); Response.Write("N=" + N + "<br>"); Response.Write("该值得平方值是:" + N * N); } </script>
显示结果
在上面的代码中的两个write之间加入Response.End()
这时,结果只会显示N=4
利用此方法可在程序中进行调试。
我的生活只讲给你听
相关文章推荐
- NET Core环境并创建运行ASP.NET网站
- Mvc多级Views目录 asp.net mvc4 路由重写及 修改view 的寻找视图的规则
- ASP.NET身份认证
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
- asp.net MVC 应用程序的生命周期
- asp、aspx、php、jsp万能密码大全
- ASP.NET WebForm中用async/await实现异步
- 云服务器下搭建ASP.NET Core环境
- ASP.NET GirdView后台动态绑定数据
- 使用ASP.Net WebAPI构建REST服务(六)——Self-Host
- 使用ASP.Net WebAPI构建REST服务(五)——客户端
- 使用ASP.Net WebAPI构建REST服务(四)——参数绑定
- 使用ASP.Net WebAPI构建REST服务(三)——返回值
- ASP.NET Core开发-使用Nancy框架
- [NET] Begin ASP.NET Core
- 云服务器下搭建ASP.NET Core环境
- 【ASP.NET】asp.net中的对象
- ASP.NET Mvc4整合ExtJS4.2 MVC框架
- 学习ASP.NET
- Maintain Aspect Ratio Mixin