C# Web编程-内置对象【严选内容】

上传人:博****1 文档编号:567548781 上传时间:2024-07-21 格式:PPT 页数:89 大小:6.56MB
返回 下载 相关 举报
C# Web编程-内置对象【严选内容】_第1页
第1页 / 共89页
C# Web编程-内置对象【严选内容】_第2页
第2页 / 共89页
C# Web编程-内置对象【严选内容】_第3页
第3页 / 共89页
C# Web编程-内置对象【严选内容】_第4页
第4页 / 共89页
C# Web编程-内置对象【严选内容】_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《C# Web编程-内置对象【严选内容】》由会员分享,可在线阅读,更多相关《C# Web编程-内置对象【严选内容】(89页珍藏版)》请在金锄头文库上搜索。

1、ASP.NETASP.NET程序设计程序设计C# Web编程1严选内容第第5 5讲讲 内部对象内部对象2严选内容5.1 ASP.NET内部对象概述5.2 Page对象5.3 Request对象5.4 Response对象5.5 HttpCookie对象5.6 Session对象 5.7 Application对象5.8 Server对象5.9 Mail对象5.10 viewstate对象讲解提纲讲解提纲3严选内容利用Request对象的QueryString获取方法获取标识在URL后面的信息 利用Request对象的ServerVariables获取方法获取客户端IP地址等环境变量 利用Res

2、ponse对象的Write方法输出信息及它的省略用法 掌握Response对象的Redirect方法 利用Response对象的Cookies方法设置Cookies的值,利用Request对象的Cookies获取方法获取Cookies的值。 利用Session对象保存信息 利用Application对象保存信息 掌握Server对象的的HTMLencode、Mappath和Execute方法掌握发送E-mail的一般方法 本章要点本章要点4严选内容对象其实就是可以重用的代码片断,类是对象的定义,对象是类的实例。对象一般有属性、方法、事件。ASP.NET能够利用成千上万的内置对象。本质上前面讲的

3、内置函数、Web控件也都可以看作内置对象,都是类实现的。本章就讲解其中常用的几个内部对象,包括Page、Request、Response、HttpCookie、Session、Application、Server、Mail 5.1 ASP.NET内部对象概述内部对象概述 5严选内容内部对象和其它部分的关系内部对象和其它部分的关系内部函数内部函数.NET类库类库服务器控件服务器控件内部对象内部对象6严选内容由System.Web.UI.Page类实现,命名空间System.Web.UI 属性: IsPostBackIsValid方法: DataBind(数据绑定)事件: Load (页面装载)5

4、 5. .2 2 PagePage对象对象7严选内容IsPostBackIsPostBack示例示例5-1.aspx8严选内容在第3章讲解了如何获取客户填写在表单中的信息,本节利用Request对象还可以获取更多的信息。5 5. .3 3 RequestRequest对象对象9严选内容由System.Web.HttpRequest类实现 命名空间: System.Web数据集合(获取方法):QueryString、Form、Cookies、ServerVariables、ClientCertificate、Browser 方法:TotalBytes事件:BinaryRead5.3.1 Requ

5、est对象简介对象简介 10严选内容QueryString可以获取标识在URL后面的所有返回的变量及其值。例如,当客户端送出如下的请求时,QueryString将会得到name与age两个变量的值。http:/temp.aspx?name=白芸&age=22后面可以有多个变量参数,参数之间用&连接。5.3.2 使用使用QueryString数据集合数据集合 11严选内容QueryStringQueryString数据集合示例(数据集合示例(1 1)4-2.aspx12严选内容QueryStringQueryString数据集合示例(数据集合示例(2 2)4-3.aspx13严选内容利用Requ

6、est对象的ServerVariables数据集合可以方便地取得服务器端或客户端的环境变量信息,比如客户端的IP地址等等。语法:Request.ServerVariables(环境变量名称)5.3.3 ServerVariables数据集合数据集合 14严选内容ServerVariables示例示例4-4.aspx15严选内容如果客户端浏览器支持SSL3.0或PCT1协议,可以利用ClientCertificate数据集合取回客户端浏览器的身份验证信息。语法如下:Request.ClientCertificate(关键字)如果客户端浏览器未送出身份验证信息,或服务器端也未设置向客户端浏览器要求

7、身份验证的命令,那么将返回空值。如果有,将返回相应的身份验证信息。5.3.4 ClientCertificate数据集合数据集合 16严选内容Request对象的Browser数据集合就可以方便地获取客户端浏览器特性,如类型、版本、是否支持背景音乐等。语法:Request.Browser (浏览器特性名称)4.3.5 Browser数据集合数据集合 17严选内容Browser示例示例4-5.aspx18严选内容利用该属性可以得到客户端提交数据的字节大小,语法如下:Request.TotalBytes5.3.6 TotalBytes属性属性 19严选内容前面讲的5种获取方法都是直接获取数据,而此

8、方法可以二进制方式获取客户端用Post方法提交的数据。语法如下:Request.BinaryRead(字节大小) 说明:其中字节大小是用TotalBytes属性获得的响应数据的字节大小。 4.3.7 BinaryRead方法方法 20严选内容在第3章中讲过利用Label标签控件向客户端输出信息。其实,也可以利用Response对象向客户端输出信息。而且,Response对象还有一些特殊功能,如重定向等。 (注意,在ASP.NET中提倡利用控件输出信息。)5 5. .4 4 ResponseResponse对象对象21严选内容由System.Web.HttpResponse类实现 命名空间: S

9、ystem.Web属性:Buffer、ContentType 方法:Write、Redirect、End、Clear、Flush、BinaryWrite5.4.1 Response对象简介对象简介 22严选内容利用该方法就可以在客户端输出信息,效果和利用Label标签控件一样。语法: Response.Write(变量数据或字符串)例如:Response.Write(user_name &您好) user_name是一个变量,表示用户名Response.Write(现在是: & now() ) now()是时间函数Response.Write(业精于勤而荒于嬉) 输出字符串5.4.2 利用利用

10、Write方法输出信息方法输出信息 23严选内容WriteWrite方法示例方法示例4-6.aspx24严选内容利用该方法还可以直接在HTML代码中动态输出信息,此时需要将语句用括起来,例如:Write方法示例%Response.Write(您好,欢迎光临) Response.Write(敬请提出宝贵意见) %此时,它还有一种省略方式,例如:Write方法示例 %=敬请提出宝贵意见%WriteWrite方法的其它方式方法的其它方式25严选内容使用Redirect方法就可以引导客户至另一个页面。语法如下:Response.Redirect(网址变量或字符串)例如:Response.Redirec

11、t(http:/) 引导至中国教育网 Response.Redirect(other.asp) 引导至站内其他网页 theURL=http:/ Response.Redirect(theURL) 引导至变量表示的网址5.4.3 使用使用Redirect方法引导客户端至方法引导客户端至另一个另一个URL位置位置 26严选内容RedirectRedirect方法示例方法示例4-7.aspx27严选内容5.4.4 使用使用End 方法终止方法终止ASP.NET程序程序 Test5_1.aspx28严选内容Buffer属性用来设置服务器端是否将页面先输出到缓冲区。它的取值为True或False,默认为

12、True。语法:Response.Buffer=True | False使用Response.redirect时必须保证Buffer值为True。5.4.5 关于关于Buffer属性属性 29严选内容该方法用于输出二进制信息,它不进行任何字符转换,直接输出。其语法为:Response.BinaryWrite(变量或字符串)有时侯可能在数据库里保存了二进制信息,就可以用该方法输出了。例如:从数据库中显示图片的信息就要用到该方法。 5.4.6 BinaryWrite方法方法 30严选内容很多网站能够记住客户端的访问次数。要记住访问次数可以采取多种方法,其中利用Cookie是一种可以在客户端保存信息

13、的方法。ASP.NET提供了HttpCookie对象来处理Cookie,该对象是由System.Web.HttpCookie类实现的。 5.5 HttpCookie对象对象 31严选内容Cookie俗称甜饼,可以在客户端长期保存信息。它是服务器端发送到客户端浏览器的文本串句柄,保存在客户的硬盘上。HttpCookie对象其实是:利用Response对象的Cookies方法设置Cookies;利用Request对象的Cookies获取方法来获取Cookies的值。 5.5.1 什么是什么是Cookie 32严选内容语法如下:Response.Cookies(“CookiesName”)(关键字)

14、 | .属性=字符串(1)设置不含关键字的CookieResponse.Cookies(user_name).Value=高航 (2)设置含关键字的CookieResponse.Cookies(user)(name)=高航 Response.Cookies(user )(age)=22(3)设置Cookie的有效期Response.Cookies(user_name).Expires=#1/1/2008# 5.5.2 使用使用Response对象设置对象设置Cookie 33严选内容语法如下:Request.Cookies(“CookiesName”)(关键字) | .属性(1)省略关键字的用

15、法user_name=Request.Cookies(user_name).Value (2)有关键字的用法user_name=Request.Cookies(user)(name) age=Request.Cookies(user)(age) (3)判断Cookies关键字数目result=Request.Cookies(CookiesName).Haskeys5.5.3 使用使用Request对象读取对象读取Cookie 34严选内容5.5.4 Cookie综合示例综合示例 4-8.aspx35严选内容利用Session对象 可以方便记录客户的信息。5.6 Session对象对象 36严选

16、内容由System.Web.SessionState类实现 命名空间System.Web属性SessionID、TimeOut方法Abandon事件Session_OnStartSession_OnEnd5.6.1 Session对象简介对象简介 37严选内容5.6.2 利用利用Session存储信息存储信息 4-10.aspx4-9.aspx38严选内容5.6.3 利用利用Session存储数组信息存储数组信息 4-12.aspx4-11.aspx39严选内容Session对象有它的有效期,默认为20分钟。客户端每新打开一个浏览器窗口,就会创建一个Session对象,如果超出20分钟没有和服

17、务器端交互或者关闭了浏览器,则该Session对象就会自动结束。修改有效期语法如下:Session.Timeout=整数(分钟)例如:Session.Timeout=90 将有效期改为90分钟5.6.4 Timeout属性属性 40严选内容Session对象到期后会自动清除,但到期前可以用Abandon方法强行清除。语法:Session.Abandon例如:Session(user_name)= 萌萌Session.AbandonResponse.Write(Session(user_name)说明:先将前两句复制到一个文件中执行,然后再将第3句复制到另一个ASP.NET文件中执行。 5.6.

18、5 Abandon方法方法 41严选内容Session对象可以记载特定客户的信息,与此相反的是,Application对象可以记载所有客户信息。简而言之,不同的客户必须访问不同的Session对象,但可以访问公共的Application对象。它的最典型的应用是聊天室。5.7 Application对象对象 42严选内容由System.Web.HttpApplication类实现 方法:Lock Unlock 事件:Application _OnStartApplication _OnEnd 5.7.1 Application对象简介对象简介 43严选内容语法:Application(Appli

19、cation名字)=变量、常量、字符串信息或表达式例如:Application.LockApplication(user_num)=user_num Application (“city”)=“南京” Application.Unlock5.7.2 利用利用Application存储信息存储信息 44严选内容这是一个简单的聊天室,共分3个文件5-13.asp 框架页文件(省略不讲)5-14.asp 保存发言信息5-15.asp 读取发言信息Application示例示例45严选内容5 5- -14.14.asp asp 保存发言信息保存发言信息5-14.aspx46严选内容5 5- -15.1

20、5.asp asp 读取发言信息读取发言信息4-15.aspx47严选内容和Session非常类似。存储:Dim user_name(2) As String user_name(0)= 白芸user_name(1)= 海霞Application.LockApplication(arry_user_name)=user_name Application.Unlock读取:Dim user_name () As String user_name= Application(arry_user_name) message.text=user_name(0) & 您好 & user_name(1) &

21、 您好5.7.3 利用利用Application存储数组信息存储数组信息 48严选内容Server对象是专为处理服务器上的特定任务而设计的,特别是与服务器的环境和处理活动有关的任务。5.8 Server对象对象 49严选内容由System.Web.HttpServerUtility类实现命名空间:System.Web类: 属性:ScriptTimeout方法:Execute、TransferHtmlEncode、UrlEncodeCreatObject5.8.1 Server对象简介对象简介 50严选内容该属性用来规定脚本文件执行的最长时间,默认为90秒。主要是用来防止某些可能进入死循环的错误

22、导致服务器过载问题。修改方法如下:Server.ScriptTimeout=3004.8.2 ScriptTimeout属性属性 51严选内容该方法可以用于创建组件、应用对象或脚本对象的实例。语法如下:Server.CreateObject(ActiveX Server组件)5.8.3 CreateObject方法方法 52严选内容5.8.4 HTMLEncode方法方法 4-16.aspx53严选内容该方法用来转化字符串为URL编码。例子:Server.URLEncode(“a b”) 结果:a+b5.8.5 URLEncode方法方法 54严选内容可以将虚拟路径转化为物理路径。 5.8.6

23、 MapPath方法方法 4-17.aspx55严选内容该方法用来停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行Execute方法后面的语句。语法如下:Server.Execute(变量或字符串)该方法和Redirect方法的区别。(1)Redirect语句尽管是在服务器端运行,但重定向实际发生在客户端,而Execute方法的重定向实际发生在服务器端。(2)Redirect语句执行完新的网页后,并不返回原网页,而Execute方法却返回原页面,继续执行下面的语句。(3)Redirect语句并不能把一些环境变量传递过去,而Execute方法却可以。(4)Redirect方法可

24、以转向一个网页和其他网站,而Execute方法一般只能转到同一个应用程序的其他文件。5.8.7 Execute方法方法 56严选内容该方法和Execute方法非常相似,惟一的区别是执行完新的网页后,并不返回原网页,而是停止执行过程。语法如下:Server.Transfer(变量或字符串) 5.8.8 Transfer方法方法 57严选内容ExecuteExecute方法示例方法示例4-18.aspx4-19.aspx运行结果58严选内容利用该对象可以在线发送E-mail。5.9 Mail对象对象 59严选内容Mail对象由System.Web.Mail类库实现,它其实是由MailMessage

25、、MailAttachment、SmtpMail三个类组成的 。MailMessage类用来设置E-mail的内容,如发信人地址、收信人地址等。 MailAttachment类用来添加附件 。SmtpMail类用来发送信件 。5.9.1 Mail对象简介对象简介 60严选内容最简单的发送方式:Sub Page_Load(Sender As Object, E As EventArgs)SmtpMail.Send(,,您好,祝一切顺利)End Sub说明:此时使用本机的发信服务器,要求在IIS中启动SMTP服务。5.9.2 发送发送E-mail示例示例 (1 1)61严选内容5.9.2 发送发送

26、E-mail示例示例 (2 2)4-20.aspx62严选内容下面的示例比较完整,客户可以利用表单输入信件内容,并可以选择客户端的文件作为附件发出。要注意,如果发送客户端的文件,首先要将该文件上传到服务器端,然后再发送。 5.9.3 发送发送E-mail示例二示例二63严选内容发送发送E-mail表单部分表单部分4-21.aspx64严选内容发送发送E-mail程序代码部分程序代码部分4-21.aspx65严选内容ViewState是服务器控件状态保存的基础,它是一个Hidden字段,用IE查看 Html源码,找到一个名为_VIEWSTATE的Hidden字段,其中有一大堆乱七八糟的字符,这就

27、是页面的ViewState。ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制.在WEB窗体(FORM)的设置为runat=“server”,这个窗体(FORM)会被附加一个隐藏的属性_VIEWSTATE。_VIEWSTATE中存放了所有控件在ViewState中的状态值.ViewState是类Control中的一个域,其他所有控件通过继承Control来获得了ViewState功能.它的类型是system.Web.UI.StateBag,一个名称/值的对象集合当请求某个页面时,ASP.NET把所有控件的状态序列化成一个字符串,然后做为窗体的隐藏属性送到客户端.当客户端

28、把页面回传时,ASP.NET分析回传的窗体属性,并赋给控件对应的值.当然这些全部是由ASP.NET负责的. 5.10 5.10 ViewState ViewState 66严选内容如果要使用ViewState,则在ASPX页面中必须有一个服务器端窗体标记().窗体字段是必需的,这样包含ViewState信息的隐藏字段才能回传给服务器.而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面时,ASP.NET页面框架才能添加隐藏的字段.Page的EnableViewState属性值为true.控件的EnableViewState属性值为true.使用使用ViewStateViewState的

29、条件的条件67严选内容1.当存在页面回传时,不需要维持控件的值就要把ViewState禁止.2.ViewState的索引是大小写敏感的.3.ViewState不是跨页面的.4.为了能保存在ViewState中,对象必须是可流化或者定义了TypeConverter.5.控件TextBox的TextMode属性设置为Password时,它的状态将不会被保存在ViewState中,这应该是出于安全性的考虑.6.在页面没有回传或重定向或在回传中转到(transfer)其他页面时不要使用ViewState.7.在动态建立控件时要小心它的ViewState.8.当禁止一个程序的ViewState时,这个程

30、序的所有页面的ViewState也被禁止了.9.只有当页面回传自身时ViewState才是持续的.设置ViewState ViewState可以在控件,页,程序,全局配置中设置.缺省情况下EnableViewState为true.如果要禁止所有页面ViewState功能,可以在程序配置中把EnableViewState设为false.使用使用ViewStateViewState注意的问题注意的问题68严选内容1.HTML标签 测试页 2. 2. HyperLink控件 这是最常见的一种转向方法这是最常见的一种转向方法; ; 1)A 服务器端控件 属性NavigateUrl指定要跳转到的Url地

31、址 2)NavigateUrl是可以在服务器端使用代码修改,这个区别于 3)由于HyperLink本身没有事件所以要在服务器端其它事件中设置NavigateUrl 4)代码示例 ok 5.11 5.11 页面跳转方法页面跳转方法69严选内容3. Response.Redirect()方法 1)过程:发送一个Http响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。 2)页面跳转之后内部控件保存的所有信息丢失,当A跳转到B,B页面将不能访问A页面提交的数据信息。 3)使用这个方法使用这个方法跳转后浏览器地址栏的Url信息改变 4)可以使用Session Cookie

32、s Application等对象进行页面间的数据传递 5)重定向操作发生在客户端,总共涉及到两次与Web服务器的通信:一次是对原始页面的请求,另一次是重定向新页面的请求 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护5.11 5.11 页面跳转方法页面跳转方法70严选内容4 4. . Server.Transfer()Server.Transfer()方法方法 1)实现页面跳转的同时将页面的控制权进行移交 2)页面跳转过程中Request Session等保存的信息不变,跳转

33、之后可以使用上一个页面提交的数据 3)跳转之后浏览器地址栏的Url不变 4)这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转 速度快,只需要一次postback ,但是它必须是在同一个站点下,因为它是server的一个方法。另外,他能跳过登录保护。5.11 5.11 页面跳转方法页面跳转方法71严选内容5. Server.Execute() Server.Execute()方法方法 1)该方法允许当前页面执行同一个Web服务器上的另一个页面 2)页面执行完毕之后重新回到原始页面发出Server.Execute()的位置。 3)这种方式类似针对页面的一次函数调用,被请

34、求的页面可以使用原始页面的表单数据和查询字符串集合 4)被调用页面的Page指令的EnableViewStateMac属性设置为False 5.11 5.11 页面跳转方法页面跳转方法72严选内容6. Javascript实现跳转/ 以下方式直接跳转 window.location.href = hello.html; / 以下方式定时跳转 setTimeout(javascript:location.href=hello.html, 5000); 5.11 5.11 页面跳转方法页面跳转方法73严选内容7. 7. 新页面显示新页面显示1)Respose.Write( window.open(

35、 + url + ); );2) 打开 3) 打开 private void button1_Click(object sender, EventArgs e) FrmRemoteVM fa = new FrmRemoteVM(); fa.Show(); 5.11 5.11 页面跳转方法页面跳转方法74严选内容当需要把用户跳转到另一台服务器上的页面的时候使用redirect 当需要把用户跳转到非aspx页面时候,如html使用redirect 需要把查询字符串作为url一部分的时候保留传给服务器的时候,因为其他2种方法不能做到2次postback,把数据先带回服务器使用redirect 需要a

36、spx页面间的转换(不涉及登录) 使用transfer 当需要把aspx页面的输出结果插入到另一个aspx页面的时候使用execute方法。 如果要让用户来决定何时转换页面以及转到哪一个页面,超级链接最适合。 如果要用程序来控制转换的目标,但转换的时机由用户决定,使用Web服务器的HyperLink控件,动态设置其NavigateUrl属性。 如果要把用户连接到另一台服务器上的资源,使用Response.Redirect。 如果要将查询字符串作为URL的一部分保留,使用Response.Redirect。 如果要将执行流程转入同一Web服务器的另一个ASPX页面,应当使用Server.Tran

37、sfer而不是Response.Redirect,因为Server.Transfer能够避免不必要的网络通信,从而获得更好的性能和浏览效果。 如果要捕获一个ASPX页面的输出结果,然后将结果插入另一个ASPX页面的特定位置,则使用Server.Execute。 如果要确保HTML输出合法,请使用Response.Redirect,不要使用Server.Transfer或Server.Execute方法。页面跳转小结页面跳转小结75严选内容因为ASP.NET的页面表单提交到自身,完成回传的功能,所以默认情况下不能使用POST方式进行多页面传值1 1URLURL传值传值这是经典的传值方式,这种方法

38、的使用非常简单,不过所传递的值是会显示在浏览器的地址栏上的,而且不能传递对象。所以这种方法一般用于传递的值少且安全性要求不高的情况下。在*.aspx页面开发中可以使用超级链接文本进行传值,如以下代码所示。URL传值以上链接文本将页面跳转到GetValues.aspx页面,并且通过URL传递urlvalue1变量和urlvalue2变量,其值分别为intel和amd。在*.cs的服务器端方法中也可以调用HttpResponse对象的Redirect方法,将浏览器端重定向到新页面并通过URL传值,如以下代码所示。Response.Redirect(“/GetValues.aspx?urlvalue

39、1=intel&urlvalue2=amd”);5.12 5.12 页面之间数据传递页面之间数据传递76严选内容2. Session Session传值传值 这种方法将每份数据存储于服务器变量中,可以传递比较多的数据,并且安全性较高,所以常用于用户身份的验证功能中。不过,Session变量如果存储过多的数据会消耗过多的服务器资源。其使用方法如以下代码所示。SessionSessionValue = “ATI”;/也可以用索引存储Session0 = “ATI”;/在其他页面的服务器端方法中取值方式为:string str = SessionSessionValue.ToString();/也可

40、以用索引获取string str = Session0.ToString();Session的可在应用程序的多个页面中以名称/值对的方式共享,直到浏览用户关闭自己的浏览器或者服务器Session超时(可设置,默认为20分钟)。5.12 5.12 页面之间数据传递页面之间数据传递77严选内容3 3CookieCookie传值传值 Cookie是一种比较特殊的数据存储方式,它以文本文件的形式存在于浏览用户的磁盘中。很多登录系统就是利用Cookie实现用户自动登录。即用户登录一次的登录信息将被写入到用户电脑的Cookie文件中,下次登录时,网站自动读取该Cookie完成身份验证。通过Cookie传递

41、数据虽然很方便,保存时间可以自由设置,但是安全性不高。ASP.NET中操作Cookie的主要类型位于System.Web命名空间下,分别为HttpCookie、HttpResponse以及HttpRequest。HttpCookie可建立和操作独立Cookie的安全类型,访问HttpResponse和HttpRequest的Cookies属性可以获取HttpCookieCollection集合对象,以读取或添加HttpCookie对象。添加Cookie的方法如以下代码所示。5.12 5.12 页面之间数据传递页面之间数据传递78严选内容/创建一个HttpCookie 对象,向构造函数传递名称值

42、HttpCookie ck = new HttpCookie(CookieValue);/设置ck的“Value”属性(值)ck.Value = “Cookie值”;/设置ck的过期时间为当前时间加上360s,即6分钟后失效ck.Expires = DateTime.Now.AddSeconds(360);/设置ck有效范围(域限制)ck.Domain = ;/将ck添加至HttpCookieCollection对象Response.Cookies.Add(ck);/也可为以下方法添加/Response.AppendCookie(ck);5.12 5.12 页面之间数据传递页面之间数据传递79

43、严选内容读取用户的Cookie则更为简单,只需根据名称读取HttpCookieCollection集合对象中的子项即可,如以下代码所示。string str = Request.CookiesCookieValue.Value;除此之外,还可以利用一个HttpCookie存储多个名称/值对形式的Cookie信息,如以下代码所示。HttpCookie ck = new HttpCookie(CookieValue);/以名称/值对的方式添加多个Cookie信息ck.Values.Add(value1, “one”);ck.Values.Add(value2, two);读取这些Cookie如以下

44、代码所示。string str = 值1:+Request.CookiesCookieValue.Valuesvalue1;str += 值2: + Request.CookiesCookieValue.Valuesvalue2;5.12 5.12 页面之间数据传递页面之间数据传递80严选内容说明:多数浏览器支持最多可达4096字节的Cookie,如果要将为数不多的几个值保存到用户计算机上,浏览器还限制了每个站点可以在用户计算机上保存的Cookie数量。大多数浏览器只允许每个站点保存20个Cookie。如果试图保存更多的Cookie,则最先保存的Cookie就会被删除。还有些浏览器会对来自所有

45、站点的Cookie总数作出限制,这个限制通常为300个。用户可以设置自己的浏览器,拒绝接受Cookie,这种情况下只能结合其他的数据存储方式。5.12 5.12 页面之间数据传递页面之间数据传递81严选内容4 4Server.TransferServer.Transfer传值传值首先通过定义一个public权限的属性,该属性可返回所需传递的值。然后在第两个页面中,使用Context.Handler属性来获得前一个页面实例对象的引用,即可通过访问自定义的属性获取需要的值。5.12 5.12 页面之间数据传递页面之间数据传递82严选内容假设SendValues.aspx页面为传递数据的页面,在Se

46、ndValues.aspx.cs的页面类中定义一个public属性,通过get直接返回需要传递的值(可为页面中某个服务器控件的属性值)。public string TransferDatagetreturn VIA;5.12 5.12 页面之间数据传递页面之间数据传递83严选内容在SendValues.aspx.cs的某个方法(如Button控件的Click事件处理方法)中调用HttpServerUtility对象的Transfer方法,如以下代码所示。Server.Transfer(/GetValues.aspx);假设GetValues.aspx为第二个页面,在GetValues.aspx

47、.cs的Page_Load方法中接收前一个页面所传递的值,方法如以下代码所示。/定义SendValues类型的变量SV_PageSendValues SV_Page;/访问HttpContext对象的Handler属性,将值转换为SendValues类型,引用赋值给SV_PageSV_Page = (SendValues)Context.Handler;/SV_Page即为SendValues.aspx页面类的对象,直接获取其TransferData属性值string str = SV_Page.TransferData;5.12 5.12 页面之间数据传递页面之间数据传递84严选内容5 5、

48、ApplicationApplication传值传值用于保存所有用户共用的数据信息。 在Asp.Net中类似的配置数据最好保存在Web.config文件中。如果使用Application对象,一个需要考虑的问题是任何写操作都要在 Application_OnStart事件(global.asax)中完成。尽管使用Application.Lock和 Application.Unlock方法来避免写操作的同步,但是它串行化了Application对象的请求,当网站访问量大的时候会产生严重的性能 瓶颈。因此最好不要用此对象保存大的数据集。使用如下: /存放信息 ApplicationUserName

49、ID=1000; /读取信息 (接收页面)String NameID=ApplicationUserNameID.ToString(); 因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。5.12 5.12 页面之间数据传递页面之间数据传递85严选内容6. ViewState(页内数据值传递)常用于保存单个用户的状态信息,可以保存大量的数据但是过多使用会影响应用程序的性能。所有Web服务器控件都使用ViewStat在页面回发期间保存自 己的状态信息。每个控件都有自己的ViewState,不用时最好关闭以节省资源。通过给Page指令添加EnableViewState= false属性可以禁止整个页面的ViewState。用法和Session一样StateDropLoadIndex = 0 ;注意:它保存在的信息只能在一个aspx文件中使用。出去后,这个就没有 用了,因为它的用途只是保存WEB控件的状态。5.12 5.12 页面之间数据传递页面之间数据传递86严选内容87严选内容 5.12 本章小结本章小结 88严选内容再再 见见89严选内容

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号