《NET视频教程之c sharp _ASPNET中的内置对象》由会员分享,可在线阅读,更多相关《NET视频教程之c sharp _ASPNET中的内置对象(77页珍藏版)》请在金锄头文库上搜索。
1、ASPNET中的内置对象第三章目标掌握 response对象 掌握 request 对象 掌握 application对象 掌握 Global.asax 使用 Server 对象 使用 Session 对象 掌握 Cookies对象 使用 Cache对象ASP.NET 对象对象描述response服务器端发送信息到客户端浏览器 request服务器端接受客户端浏览器的信息Application获取或设置整个应用程序的变量 session获取或设置用户级别 的变量 server该对象用于访问服务器上的资源。Cookies用于保存客户浏览 器的信息cache 用于页面缓存一、Response对象属
2、性Response对象是HttpResponse类的一个实例。该类主要是封装 来自ASP.NET操作的HTTP响应信息,常用的属性有如下几个: 属 性 说 明 属 性 值 BufferOutput 获取或设置一个值,该值 指示 是否缓冲输出,并在完成处理整个页之后将其发送 如果缓冲了到客户端的 输出,则为true;否则为false。默认为true Charset 获取或设置输出流的HTTP字符集 输出流的HTTP字符 集 IsClientConnected 获取一个值,通过该值 指示客 户端是否仍连接在服务器上 如果客户端当前仍在连接, 则为 true;否则为 false Response对象
3、属性使用的例 子由于Response对象的BufferOutput属性默认 为True,所以要输出到客户端的数据都暂时存 储在缓冲区内,等到所有的事件程序,以及所 有的页面对象全部编译完毕后,才将所有在缓 冲区中的数据送到客户端的浏览器,如下面的 代码 : “); %void Page_Load(Object sender, EventArgs e) Response.Write(“缓存清除前“ + “); Response.Clear(); Response对象属性使用的例 子如果在相同的程序中加入“Response.BufferOutput=false”:如下 面的代码 : “); %vo
4、id Page_Load(Object sender, EventArgs e) Response.BufferOutput=false; Response.Write(“清除缓冲区之前的数据“ + “); Response.Clear(); 这表明数据是直接输出而没有存放在缓冲区内。Response对象方法Response对象可以输出信息到客户端,包括直接发送信息给浏 览器、重定向浏览器到另一个URL或设置cookie的值,常用的 方法有如下几个: 方 法 说 明 Write 将指定的字符串或表达式的结果写到当前的HTTP输出 End 停止页面的执行并得到相应结 果 Clear 用来在不将缓
5、存中的内容输出的前提下,清空当前页的缓存 ,仅当使用了缓存输出时,才可以利用Clear方法 Flush 将缓存中的内容立即显示出来。该方法有一点和Clear方法一 样,它在脚本前面没有将Buffer属性设置为True时会出错。和 End方法不同的是,该方法调用后,该页 面可继续执 行 Redirect 使浏览 器立即重定向到程序指定的URL Response对象方法使用的例 子1for(int i=1;i“); 本例使用“write”方法,向屏幕输出500个值。 Response对象方法使用的 例子2End方法可以停止当前页面的执行,基于这个原因,可以结合 Response.write方法输出
6、当前页面上的某个变量、数组值。输入一个数值:void btnSubmit_Click(Object sender, EventArgs e) int N = int.Parse(Request.Form“txtVar“.ToString();Response.Write(“N=“ + N + “);Response.Write(“该值的平方值是:“ + N*N); Response对象方法使用的例 子2在代码中加上“Response.End()”,代码如下:void btnSubmit_Click(Object sender, EventArgs e) int N = int.Parse(Re
7、quest.Form“txtVar“.ToString();Response.Write(“N=“ + N + “); Response.End();Response.Write(“该值的平方值是:“ + N*N); 这时再运行代码,将只会显示: N=6 实验证明,“Response.End()”方法停止了当前页面的执行。Response对象方法使用的例 子3在网页编程中,经常会遇到在程序执行到某个 位置进行页面调转的情况。 Response.Redirect方法可以满足这种需求, 如: Response.Redirect(“http:/“); 执行该代码,页面将跳转到网易163的主页。 二、
8、Reques 对象Request对象是HttpRequest类的一个实例。它能够读取客户端 在Web请求期间发送的HTTP值。常用的属性有如下几个: 属 性 说 明 属 性 值 QueryString 获取 HTTP 查询 字符串变量集 合 NameValueCollection对 象 Path 获取当前请求的虚拟路径 当前请求的虚拟路径 UserHostAddress 获取远程客户端的 IP 主机地 址 远程客户端的IP地址 Browser 获取有关正在请求的客户端的 浏览 器功能的信息 HttpBrowserCapabilities 对象 Request对象属性使用的例子程序中,经常可以使
9、用QueryString来获得从上一个页面传递来 的字符串参数。 例如: 查看 在页面2中接收到从页面1中传过来的两个变量:void Page_Load(object sender, System.EventArgs e) Response.Write(“变量ID的值:“ + Request.QueryString“ID“ +“);Response.Write(“变量Name的值:“ + Request.QueryString“Name“); 插入的话题:关于A页面传递参数的 方式1、利用?加参数的方式在中的form默认方式是post,一般我们不会轻易修改它的 method方法 当重定向另外一
10、个页面(response.redirect、链接等),采用url? 参数的方式,多个参数则用url = “Default2.aspx?name=“ + TextBox1.Text+“Response.Redirect(url); 另外一个页面:Response.Write(Request.QueryString“name“);Response.Write(Request.QueryString“id“);这是用于参数传递最常用的方式。插入的话题:关于A页面传递参数的 方式2、采用默认的post的方式注意:这个方式一定要用server.transfer,见下面的代码:protected void
11、 Button1_Click(object sender, EventArgs e)Server.Transfer(“default2.aspx“); 另外一个页面:Response.Write(Request.Form传递页面的控件ID);Server.transfer采用的是页面重定向是服务器端的行为,而 response.redirect是url重定向,是客户端重新请求服务器响应 的过程。插入的话题:关于A页面传递参数的 方式3、利用httpcontext对象(通过 this.context属性获取)protected void Button1_Click(object sender,
12、EventArgs e) string url;url = “Default2.aspx“; this.Context.Items“name“= TextBox1.Text; Server.Transfer(url); 接收页面:string aa = this.Context.Items“name“.ToString();Response.Write(aa);Browser Capability DetectionWhy detect browser capabilities? (可以使用此信息确保网页是由浏览器显示正确。如:1、是否提供cookies支持2、纯文字版本的网页浏览器移动设备上
13、运行等。 ) The Request.Browser object Request.Browser properties见备注中的例子Request对象方法常用的方法有如下几个: 方 法 说 明 MapPath 为当前请求将请求的 URL 中的 虚拟路径映射到服务器上的物理 路径 Request对象方法使用的例 子一个页面: 查看文件物理路径另一个接收页面: protected void Page_Load(object sender, EventArgs e)Response.Write(“当前虚拟地址为:“ + Request.RawUrl+“);Response.Write(“当前物理地
14、址为 :“+Request.MapPath(Request.RawUrl);三、Global.asax文件简 介当第一个客户向服务器发送请求时,则创建一个ASP.NET Application 一旦创建了Application对象,Application的事件将被触发 ,如Application_Start,这些事件保存在Global.asax文 件中 在应用程序的根目录下可以找到该文件,ASP.NET会自动 编译Global.asax文件中的代码,同ASP的Golbal.asa文 件 Global.asax提供的主要事件有 Application_Start Application_End
15、Session_Start Session_End3.1、Global.asax文件简 介存储于应用程序的根目录中 定义应用程序的边界,如果存在则首先被执 行,它 可以初始化应用程序级或会话级变量 可以连接到数据库 可以发送 Cookie 删除它不会出问题 见备注中的代码演示3.2、Global.asax 的主要事 件事件何时激发 Application_Start在调用当前应用程序目录的第一个 ASP.NET 页面时激发。Application_End在应用程序最后一个会话结 束时激 发。此外,在使用应用服务器,关 闭WEB应用程序时也会激发。Application_Error 当应用程序中
16、遇到一个未处理的异 常时,该事件被触发 。Session_Start在每次新的会话开始时激发。 Session_End在会话结 束时激发。 3.3、Global.asax 的事件演 示见备注中的代码四、Application 对象Application对象是HttpApplicationState类的一个实例,当 应用服务器启动时,此对象自动进行实例化。ApplicationvarName Application “greeting“ = “欢迎访问我们的网站“;Application、Session对象的区别使用Application对象,可以创建应用程序级 变量,使用Session对象,可以创建会话级 变量 不管是应用程序级或会话级变量,首先必须 设置变量,设置变量的语法是 Application“co