aspnet七大内置对象.pdf
《aspnet七大内置对象.pdf》由会员分享,可在线阅读,更多相关《aspnet七大内置对象.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、Response 对象Response 对象是Response 类的一个实例。该类主要是封装来自ASP.NET 操作的响应信息。1、Response 对象的属性属性说明属 性 值获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之如果缓冲了到客户端的输出,那么为 true;否那么为 false。BufferOutput后将其发送默认为 true续表属性说明属 性 值Cache获取 Web 页的缓存策略过期时间、保密性、变化子句包含有关当前响应的缓存策略信息的 CachePolicy 对象Charset获取或设置输出流的字符集输出流的字符集IsClientConnected获取一个值
2、,通过该值指示客户端是否仍连接在效劳器上如果客户端当前仍在连接,那么为 true;否那么为 false实例:使用缓冲区由于 Response 对象的 BufferOutput 属性默认为 True,所以要输出到客户端的数据都暂时存储在缓冲区内,等到所有的事件程序,以及所有的页面对象全部解译完毕后,才将所有在缓冲区中的数据送到客户端的浏览器。下面的例子将演示缓冲区是如何工作的。%Response.Write(缓存已去除+);%void Page_Load(Object sender,EventArgs e)Response.Write(缓存去除前+);Response.Clear();上述程序代
3、码实例首先在“Page_Load事件中送出“缓存去除前这一行,此时的数据存在缓冲区中。接着使用 Response 对象的 Clear 方法将缓冲区的数据去除,所以刚刚送出的字符串已经被去除。然后 IIS 开始读取 HTML 组件的局部,并将结果送至客户端的浏览器。由执行结果只出现“缓存已去除可知,使用Clear 方法之前的数据并没有出现在浏览器 上,所 以 程 序 开 始 时 是 存 在 缓 冲 区 内 的。如 果 在 相 同 的 程 序 中 参 加“Response.BufferOutput=false:%Response.Write(去除之后的数据);%void Page_Load(Obj
4、ect sender,EventArgs e)Response.BufferOutput=false;Response.Write(去除缓冲区之前的数据+);Response.Clear();可以发现,执行的结果并没有因为使用 Clear 方法而将缓冲区的数据去除,这说明数据是直接输出而没有存放在缓冲区内。2、Response 对象的方法Response 对象可以输出信息到客户端,包括直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 cookie 的值。下表列举了几个常用的方法。Response 对象的方法方法WriteEnd说明将指定的字符串或表达式的结果写到当前的输出停止页面的执
5、行并得到相应结果Clear用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用 Clear 方法将缓存中的内容立即显示出来。该方法有一点和 Clear 方法一样,它在脚本前面没有将 Buffer 属性设置为 True 时会出错。和 EndFlush方法不同的是,该方法调用后,该页面可继续执行使浏览器立即重定向到程序指定的 URLRedirectASP.NET 中引用对象方法的语法是“对象名.方法名。“方法就是嵌入到对象定义中的程序代码,它定义对象怎样去处理信息。使用嵌入的方法,对象便知道如何去执行任务,而不用提供额外的指令。以下将通过几个小例子来讲解Respo
6、nse 对象的常用方法。Response 对象的方法方法Write说明将指定的字符串或表达式的结果写到当前的输出End停止页面的执行并得到相应结果Clear用来在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用 Clear 方法将缓存中的内容立即显示出来。该方法有一点和 Clear 方法一样,它在脚本前面没有将 Buffer 属性设置为 True 时会出错。和 EndFlush方法不同的是,该方法调用后,该页面可继续执行使浏览器立即重定向到程序指定的 URLRedirectASP.NET 中引用对象方法的语法是“对象名.方法名。“方法就是嵌入到对象定义中的程序代
7、码,它定义对象怎样去处理信息。使用嵌入的方法,对象便知道如何去执行任务,而不用提供额外的指令。以下将通过几个小例子来讲解Response 对象的常用方法。实例:使用 Response.write,向客户端发送信息for(int i=1;i=500;i+)Response.Write(i=+i+);本例使用“write方法,向屏幕输出 500 个值。实例:使用 Response.End 方法调试程序End 方法可以停止当前页面的执行,基于这个原因,可以结合Response.write 方法输出当前页面上的某个变量、数组值。输入一个数值:void btnSubmit_Click(Object se
8、nder,EventArgs e)int N=int.Parse(Request.FormtxtVar.ToString();Response.Write(N=+N+);Response.Write(该值的平方值是:+N*N);运行上面的代码,结果如下图。使用 Response.End 调试程序输入一个值“6,然后单击“计算该值的平方值按钮,屏幕将显示如下结果:N=6该值的平方值是:36在代码中加上“Response.End(),代码如下:void btnSubmit_Click(Object sender,EventArgs e)int N=int.Parse(Request.Formtxt
9、Var.ToString();Response.Write(N=+N+);Response.End();Response.Write(该值的平方值是:+N*N);这时再运行代码,将只会显示:N=6实验证明,“Response.End()方法停止了当前页面的执行。这仅仅是一个小例子,读者可以依此类推,在程序中使用End 方法进行调试。不过千万要记住调试完代码后,不要忘记把调试用的“Response.End()删掉。实例:使用 Redirect 方法进行页面重定向在网页编程中,经常会遇到在程序执行到某个位置进行页面调转的情况。Response.Redirect 方法可以满足这种需求,例如代码:Re
10、sponse.Redirect(错误!超链接引用无效。错误!超链接引用无效。);执行该代码,页面将跳转到网易163 的主页。二、Request 对象Request 对象是Request 类的一个实例。它能够读取客户端在Web 请求期间发送的值。RequestRequest对象的属性对象的属性Request 对象的属性如表 14-3 所示。表 14-3 Request 对象的属性属性获取当前请求的虚拟路径说明获取查询字符串变量集合当前请求的虚拟路径属 性 值NameValueCollection 对象QueryStringPathUserHostAddressBrowser获取远程客户端的 IP
11、主机地址远程客户端的 IP 地址获取有关正在请求的客户端的浏览器功能的信息 BrowserCapabilities 对象实例 14-5:获取 QueryString 值程序中,经常可以使用QueryString 来获得从上一个页面传递来的字符串参数。例如,在页面 1 中创立一个连接,指向页面2,并用 QueryString 来查询两个变量:查看在页面 2 中接收到从页面 1 中传过来的两个变量:void Page_Load(object sender,System.EventArgs e)Response.Write(变量 ID 的值:+Request.QueryStringID+);Resp
12、onse.Write(变量 Name 的值:+Request.QueryStringName);运行上面代码结果如下:变量 ID 的值:6变量 Name 的值:Wang上面的例子可以成功地得到QueryString 的值。用类似方法,可以获取Form,Cookies,SeverVaiables 的值。调用方法都是:Request.CollectlonVariabLeCollectlon 包括 QueryString,ForM,Cookies,SeverVaiables 四种集合,VariabLe为要查询的关键字。不过,这里的Collectlon 是可以省略的,也就是说,RequestVaria
13、ble与 Request.CollectionVariable这两种写法都是允许的。如果省略了 Collection,那么 Request 对象会依照 QueryString,Form,Cookies,SeverVaiables 的顺序查找,直至发现 Variable 所指的关键字并返回其值,如果没有发现其值,方法那么返回空值Null。不过,为了优化程序的执行效率,建议最好还是使用Collection,因为过多地搜索就会降低程序的执行效率。2 2RequestRequest 对象的方法对象的方法Request 对象的方法如表 14-4 所示。表 14-4 Request 对象的方法方法执行对当
14、前输入流进行指定字节数的二进制读取说明BinaryReadMapPath为当前请求将请求的 URL中的虚拟路径映射到效劳器上的物理路径实例 14-6:获取文件的物理路径Request.MapPath(FileName);可以通过这条语句来得到某个文件的实际物理位置,这个方法常常用在需要使用实际路径的地方。三、三、ApplicationApplication 对象对象Application 对象是ApplicationState 类的一个实例。ApplicationState 类的单个实例,将在客户端第一次从某个特定的ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创立。对于 Web
15、效劳器上的每个 ASP.NET 应用程序,都要创立一个单独的实例。然后通过内部Application 对象公开对每个实例的引用。Application 对象有如下特点:数据可以在Application对象内部共享,因此一个Application对象可以覆盖多个用户。一个 Application 对象包含事件,可以触发某些Applicatin 对象脚本。个别 Application 对象可以用 Internet Service Manager来设置而获得不同属性。单独的 Application 对象可以隔离出来在它们自己的内存中运行,这就是说,如果一个人的 Application 遭到破坏,就不
16、会影响其他人。可以停止一个 Application 对象将其所有组件从内存中驱除而不会影响到其他应用程序。一个网站可以有不止一个Application 对象。典型情况下,可以针对个别任务的一些文件创立个别的 Application 对象。例如,可以建立一个 Application 对象来适用于全部公用用户,而再创立另外一个只适用于网络管理员的Application 对象。Application 对象使给定应用程序的所有用户之间共享信息,并且在效劳器运行期间持久地保存数据。因为多个用户可以共享一个Application 对象,所以必须要有Lock 和 Unlock方法,以确保多个用户无法同时改变
17、某一属性。Application 对象成员的生命周期止于关闭IIS 或使用 Clear 方法去除。1 1ApplicationApplication 对象的属性对象的属性Application 对象的属性如表 14-5 所示。表 14-5 Application 对象的属性属性说明属 性 值AllKeysCount获取 ApplicationState 集合中的访问键获取 ApplicationState 集合中的对象数 ApplicationState 对象名的字符串数组集合中的 Item 对象数。默认为 02 2ApplicationApplication 对象的方法对象的方法Applic
18、ation 对象的方法如表 14-6 所示。表 14-6 Application 对象的方法方法Add新增一个新的 Application 对象变量去除全部的 Application 对象变量说明ClearGet使用索引关键字或变数名称得到变量值使用索引关键字來获取变量名称锁定全部的 Application 变量GetKeyLockRemove使用变量名称删除一个 Application 对象删除全部的 Application 对象变量RemoveAllSet使用变量名更新一个 Application 对象变量的內容解除锁定的 Application 变量UnLock使用 Applicatio
19、n 对象的语法如下所示:Application(变量名)=变量值实例 14-7:设置、获取 Application 对象的内容代码如下:void Page_Load(object sender,System.EventArgs e)Application.Add(App1,Value1);Application.Add(App2,Value2);Application.Add(App3,Value3);int N;for(N=0;NApplication.Count;N+)Response.Write(变量名:+Application.GetKey(N);Response.Write(变量值:
20、+Application.Get(N)+);Application.Clear();在本例中,首先通过Add 方法添加三个 Application 对象,并赋以初值,接着通过Count属性得到 Application 对象的数量,然后通过循环操作GetKey 方法和 Get 方法分别得到新增对象的“索引和“索引所对应的“值。执行上面代码,得到如下结果:变量名:App1 变量值:Value1变量名:App2 变量值:Value2变量名:App3 变量值:Value3实例 14-8:Application 对象的加锁与解锁Lock 方法可以阻止其他客户修改存储在Application 对象中的变量
21、,以确保在同一时刻仅有一个客户可修改和存取Application 变量。如果用户没有明确调用Unlock 方法,那么效劳器将在页面文件结束或超时即可解除对Application 对象的锁定。Unlock 方法可以使其他客户端在使用Lock 方法锁住 Application 对象后,修改存储在该对象中的变量。如果未显式地调用该方法,Web 效劳器将在页面文件结束或超时后解锁Application 对象。使用方法如下:Application.Lock();Application变量名=变量值;Application.UnLock();四、四、SessionSession 对象对象Session 对
22、象是SessionState 的一个实例。该类为当前用户会话提供信息,还提供对可用于存储信息的会话范围的缓存的访问,以及控制如何管理会话的方法。Session 的创造是填补协议的局限,协议工作过程是,用户发出请求,效劳器端做出响应,这种用户端和效劳器端之间的联系都是离散的,非连续的。在协议中没有什么能够允许效劳器端来跟踪用户请求的。在效劳器端完成响应用户的请求后,效劳器端不能持续与该浏览器保持连接。从网站的观点上看,每一个新的请求都是单独存在的,因此,当用户在多个主页间转换时,就根本无法知道他的身份。可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间
23、跳转时,存储在 Session 对象中的变量将不会丧失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web 页时,如果该用户还没有会话,那么Web 效劳器将自动创立一个 Session 对象。当会话过期或被放弃后,效劳器将中止该会话。当用户第一次请求给定的应用程序中的aspx 文件时,ASP.NET 将生成一个 SessionID。SessionID 是由一个复杂算法生成的号码,它唯一标识每个用户会话。在新会话开始时,效劳器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中。在将 SessionID cookie存储于用户的浏览器之后,即使用户请求了
24、另一个.aspx 文件,或请求了运行在另一个应用程序中的.aspx 文件,ASP.NET 仍会重用该 cookie 跟踪会话。与此相似,如果用户成心放弃会话或让会话超时,然后再请求另一个.aspx 文件,那么ASP.NET 将以同一个 cookie 开始新的会话。只有当效劳器管理员重新启动效劳器,或用户重新启动 Web 浏览器时,此时存储在内存中的SessionID 设置才被去除,用户将会获得新的 SessionID cookie。通过重用SessionID cookie,Web应用程序将发送给用户浏览器的cookie数量降为最低。另外,如果用户决定该Web 应用程序不需要会话管理,就可以不让
25、Web 应用程序跟踪会话和向用户发送 SessionID。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie的浏览器中保存,如果客户关闭了cookies 选项,Session 也就不能发挥作用了。ASP.NET 的 Sessions 非常好用,能够利用 Session 对象来对 Session 全面控制,如果需要在一个用户的 Session 中存储信息,只需要简单地直接调用Session 对象就可以了,下面就是个例子:Session(Myname)=Response.fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- aspnet 七大 内置 对象
限制150内