CH04内置对象和状态管理_第1页
CH04内置对象和状态管理_第2页
CH04内置对象和状态管理_第3页
CH04内置对象和状态管理_第4页
CH04内置对象和状态管理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 内置对象和状态管理内置对象和状态管理回顾回顾验证控件有哪些?每一个的作用是什么?验证控件有哪些?每一个的作用是什么?怎样实现文件上传?怎样实现文件上传?本章介绍本章介绍responseresponse对象和对象和requestrequest对象对象 serverserver对象对象 applicationapplication和和sessionsession对象对象 cookiecookie对象对象 viewstateviewstate对象对象内置对象的属性与方法内置对象的属性与方法 ( (重点重点) )response对象对象-1 httpresponsehttpresponse

2、对象提供对当前页面的输出流的访问,这里的对象提供对当前页面的输出流的访问,这里的输出是指用户作为对其特定请求的响应而收到的信息集合。输出是指用户作为对其特定请求的响应而收到的信息集合。httpresponsehttpresponse类主要可用于:类主要可用于: 1 1、将文本写入到输出页面、将文本写入到输出页面 2 2、读取、读取/ /写入写入cookiecookie 3 3、将用户从请求页面重新定向到另一页面、将用户从请求页面重新定向到另一页面 4 4、为某种操作设置或获得输出内容的类型、为某种操作设置或获得输出内容的类型 5 5、检查客户端是否仍然与服务器相连、检查客户端是否仍然与服务器相

3、连 response对象对象-2httpresponsehttpresponse对象的属性对象的属性 属性名称说 明contenttype 获得或指定响应的 http 内容 (mime) 类型为标准 mime 类型(如 text/xml 或 image/gif)。默认的 mime 类型是 text/html。客户端浏览器从输出流中指定的 mime 类型获得内容的类型cookie用于获得 httpresponse 对象的 cookie 集合expires 指定浏览器中缓存的页面过期之前的时间(以分钟为单位)response对象对象-3httpresponsehttpresponse对象的方法对象

4、的方法 方 法说 明write用于向当前 http 响应流写入文本,使其成为返回页面的一部分end停止处理至客户端的输出redirect将用户从请求页面重新定向或带到另一页面使用使用response对象对象 /str /str为输出文本为输出文本response.write(string str)response.write(string str) /url /url为定向的网址为定向的网址, ,可以为本服务器,也可以为可以为本服务器,也可以为其它服务器地址其它服务器地址response.redirect(string url)response.redirect(string url) / /

5、结束流输出结束流输出response.end() response.end() request对象对象-1 httprequesthttprequest对象将客户端请求的信息提供给服务器对象将客户端请求的信息提供给服务器客户端请求的信息包括下列内容:客户端请求的信息包括下列内容:1 1、识别用户和浏览器的、识别用户和浏览器的httphttp变量。变量。2 2、在客户端浏览器上为网站存储的、在客户端浏览器上为网站存储的cookiecookie。3 3、作为查询字符串或网页、作为查询字符串或网页部分的部分的htmlhtml控件值控件值添加到添加到urlurl的值。的值。4 4、如果是安全保护的网站

6、,有关网站安全的信息、如果是安全保护的网站,有关网站安全的信息 request对象对象-2httprequesthttprequest对象的属性对象的属性 属性名称属性名称说说 明明browser 获得有关请求浏览器能力的信息form 获得网页中定义的窗体变量的集合querystring获得以名/值对表示的 http 查询字符串变量的集合params 获得由以名/值对表示的 querystring、form、cookie 和 servervariables 组成的集合 url返回有关当前请求的 url 信息request对象对象-3httprequesthttprequest对象的方法对象的方

7、法 方法名称方法名称说说 明明mappath 将请求 url 中提到的虚拟路径映射到服务器上资源的实际物理路径使用使用request对象对象 / /获取请求的浏览器获取请求的浏览器httprequest.browser.browserhttprequest.browser.browserhttprequest.url /httprequest.url /获取请求的获取请求的urlurl地址地址 /获取请求的获取请求的ipip地址地址request.userhostaddress request.userhostaddress / /通过键获取浏览器传递的参数值通过键获取浏览器传递的参数值req

8、uest.querystringkey request.querystringkey / /通过索引获取浏览器传递的参数值通过索引获取浏览器传递的参数值request.querystringindexrequest.querystringindexserver对象对象httpserverutilityhttpserverutility类包含处理类包含处理webweb请求的方法。请求的方法。server对象的方法对象的方法-1executeexecute方法和方法和transfertransfer方法均会停止当前页面的执行方法均会停止当前页面的执行,并转去执行用户在方法内指定的,并转去执行用户在

9、方法内指定的urlurl,同时用户的会,同时用户的会话状态和任何当前的事务处理状态都将传送给新页面话状态和任何当前的事务处理状态都将传送给新页面表列出了这两个方法的差异。表列出了这两个方法的差异。 executetransferurl 参数指定的页面处理完后,控制权会返回给先前的页面或调用此方法的页面,并且从此方法调用后的语句继续执行 url 参数指定的页面处理完后,控制权不会返回给先前的页面,也不会返回给调用此方法的页面,并且在新页面完成执行时结束 server对象的方法对象的方法-2htmlencodehtmlencode方法方法 : 内容原样输出内容原样输出htmlencode()htm

10、lencode()的语法列出如下:的语法列出如下: htmlencode(stringhtmlencode(string,textwriter):textwriter):其中其中stringstring表示表示要编码为要编码为httphttp的文本。的文本。 htmlencode(string):htmlencode(string):其中其中stringstring表示要编码的文本表示要编码的文本,而,而textwritertextwriter变量则用于将输出存储为变量则用于将输出存储为textwritertextwriter流。流。 server对象的方法对象的方法-3urlencodeur

11、lencode方法方法 为了在地址中传递路径符号或者不想让用户看得出为了在地址中传递路径符号或者不想让用户看得出超级链接的真实地址,我们采用超级链接的真实地址,我们采用urlencodeurlencode方法对要方法对要传送的传送的urlurl进行编码进行编码 urlencodeurlencode方法的语法列出如下:方法的语法列出如下: urlencodeurlencode(stringstring): : 其中其中stringstring表示将要编码并表示将要编码并由由httphttp传送的文本。传送的文本。 urlencodeurlencode(stringstring,textwrite

12、rtextwriter): :其中其中stringstring表示表示将要编码并由将要编码并由httphttp传送的文本,而传送的文本,而textwritertextwriter对象对象变量则用于将经过编码的输出存储为变量则用于将经过编码的输出存储为textwritertextwriter流流 server对象的方法对象的方法-4mappathmappath方法方法 借助于借助于mappathmappath方法,我们可以从虚拟路径得到方法,我们可以从虚拟路径得到webweb资资源(如源(如.aspx.aspx页面)的物理路径。页面)的物理路径。 mappathmappath方法该方法的语法如下

13、:方法该方法的语法如下: mappath(string path):mappath(string path):其中其中stringstring表示表示webweb服务器上服务器上的指定虚拟路径的指定虚拟路径 状态管理概述状态管理概述 状态是任何类型的能够在一段时间内保持活跃的信状态是任何类型的能够在一段时间内保持活跃的信息。这段时期可以是整个应用程序生命周期,也可息。这段时期可以是整个应用程序生命周期,也可以是用户使用这个应用程序的时间,或者用户浏览以是用户使用这个应用程序的时间,或者用户浏览另外一个页面之前这个页面的生命周期,等等。另外一个页面之前这个页面的生命周期,等等。为什么不保留在数据

14、库中。为什么不保留在数据库中。存储状态的位置存储状态的位置 支持支持webweb应用程序的应用程序的httphttp协议是无状态的。所以存储状态的位置就只协议是无状态的。所以存储状态的位置就只有两个:服务器端和客户机端有两个:服务器端和客户机端服务器端服务器端 应用程序应用程序这种数据在应用程序的整个生命周期中都可以被所用这种数据在应用程序的整个生命周期中都可以被所用用户访问用户访问 会话会话使状态和每个用户保持关联(比如购物篮)使状态和每个用户保持关联(比如购物篮)客户机端客户机端 视图状态视图状态保留和页面相关的数据,比如已填充的窗体字段保留和页面相关的数据,比如已填充的窗体字段 cook

15、iecookie保存客户浏览上的任意数据保存客户浏览上的任意数据 查询字符串查询字符串在在urlurl自身的客户机和服务器之间进行值传递自身的客户机和服务器之间进行值传递 隐藏的窗体字段隐藏的窗体字段这种窗体字段中包含的数据可以被应用程序使这种窗体字段中包含的数据可以被应用程序使用,但这些数据却无法被用户看到用,但这些数据却无法被用户看到 应用程序状态对象应用程序状态对象-1 applicationapplication对象是内置的对象是内置的asp.netasp.net对象,表示对象,表示asp.netasp.net应用程序的实例。应用程序的实例。applicationapplication

16、状态由状态由httpapplicationstatehttpapplicationstate类表示,它包括所有与应用类表示,它包括所有与应用程序相关的方法和集合。当第一个用户请求一个程序相关的方法和集合。当第一个用户请求一个asp.netasp.net文件时,会启动应用程序并创建一个文件时,会启动应用程序并创建一个applicationapplication对象。在创建对象。在创建applicationapplication对象后,它对象后,它就可以在整个应用程序中使用,创建的对象将持续就可以在整个应用程序中使用,创建的对象将持续到应用程序关闭。它是应用程序级变量,所有页面到应用程序关闭。它是

17、应用程序级变量,所有页面都可以使用该对象都可以使用该对象 应用程序状态对象应用程序状态对象-2以键以键/ /值对存储数据:值对存储数据: applicationkey=valueapplicationkey=value 例如:例如: application“greeting”=”application“greeting”=”欢迎访问我们的欢迎访问我们的站点站点”; ;添加方法:添加方法: application.add(key,value)application.add(key,value) application.add(“greeting”,” application.add(“greet

18、ing”,”欢迎访问我们的站点欢迎访问我们的站点”););应用程序状态对象应用程序状态对象-3在应用程序的的生命周期中,我们可以在任何时候应在应用程序的的生命周期中,我们可以在任何时候应用程序状态,对它进行检索,改变它的值等,但是因用程序状态,对它进行检索,改变它的值等,但是因为它可以同时被所有用户访问,所以我们必须考虑到为它可以同时被所有用户访问,所以我们必须考虑到并发性问题。所以当我们想要改变一个值的时候,应并发性问题。所以当我们想要改变一个值的时候,应该对该变量进行锁定。为此,该对该变量进行锁定。为此,applicationapplication对象提供对象提供两个方法:两个方法: ap

19、plication.lock();application.lock(); application.unlock(); application.unlock(); applicationhttpapplicationstatehttpapplicationstate类提供添加和移除类提供添加和移除applicationapplication状状态项的方法。下表列出了态项的方法。下表列出了httpapplicationstatehttpapplicationstate中一些中一些常用的方法常用的方法 方法说明add()向 application 状态添加新对象。clear()从 applicati

20、on 状态中移除所有对象remove()从 application 集合中按名称移除项。cookie对象对象-1 cookiecookie是一小段数据(最大为是一小段数据(最大为4kb4kb),它由客户浏览),它由客户浏览器进行保存,并在随后的每个请求中被传递到服务器进行保存,并在随后的每个请求中被传递到服务器。器。cookiecookie可为服务器存储在浏览器上的少量信息可为服务器存储在浏览器上的少量信息。cookiecookie的主要用途是在客户端系统中保留客户端的的主要用途是在客户端系统中保留客户端的个人信息。个人信息。 cookie对象对象-2cookiecookie可分为两类:可分为

21、两类: 会话会话cookiecookie。 持久性持久性cookiecookie。在浏览器的处理过程中保留的在浏览器的处理过程中保留的cookiecookie称为会话称为会话cookiecookie,这种这种cookiecookie是暂时性的,当关闭浏览器后,任何会话是暂时性的,当关闭浏览器后,任何会话cookiecookie都会丢失。持久性都会丢失。持久性cookiecookie可以保存几个月甚至几可以保存几个月甚至几年。年。cookie对象对象-3cookiecookie的缺点的缺点 由于信息保存在客户端,信息不安全,如果用户选择禁由于信息保存在客户端,信息不安全,如果用户选择禁用用coo

22、kiecookie,它的存储功能无法使用。,它的存储功能无法使用。 cookiecookie容量有限,最多存储容量有限,最多存储4k4k数据。数据。 对于单个网站,浏览器最多可以容纳对于单个网站,浏览器最多可以容纳2020个个cookie cookie 使用使用cookie对象对象 / /实例化实例化cookiecookie对象,并赋值对象,并赋值httpcookie objhttpcookie = new httpcookie objhttpcookie = new httpcookie(“username”,“httpcookie(“username”,“张三张三); ); / /设置过期

23、时间设置过期时间objhttpcookie.expires = datetime.now.addminutes(2);objhttpcookie.expires = datetime.now.addminutes(2); / /添加到输出中添加到输出中response.cookies.add(objhttpcookie);response.cookies.add(objhttpcookie); 获取获取cookiescookies中的值中的值 request.cookies“username”.valuerequest.cookies“username”.valuesession当用户在浏览站

24、点或者执行一些多步骤任务时,比如填充购物篮,需要保留用户数据。数据不能保存在单个页面中数据必须是每个用户私有的数据必须是每个用户私有的:数据一定不能被执行同样任务的其他用户访问。sessionsession对象为每个用户进行数据存储,以键对象为每个用户进行数据存储,以键/ /值对值对组合进行存储数据。组合进行存储数据。sessionsessionsession对象的属性对象的属性 属性说明sessionid包含一个唯一的用户会话标识符。它用于在整个会话过程中记录用户信息。要检索sessionid,可使用session.sessionidtimeout用于设置用户超时的时间。即它以分钟为单位指定

25、session对象在释放资源以前能够保持闲置的持续时间。默认值为20分钟。我们能通过在aspx文件中赋值以便更改此设置。例如,isnewsession 如果已按当前请求创建会话,那么该属性将返回truesession会话状态对象会话状态对象-3设置设置 sessionsession / /赋值方法赋值方法 sessionkey=valuesessionkey=value / /添加方法添加方法 session.add(key,value)session.add(key,value) / /设置过期时间,单位分钟设置过期时间,单位分钟 session.timeout=20session.timeout=20获取获取sessionsession string state=sessionkey.tostring(); string state=sessionkey.tostring();注:注:sessionsession可以存储对象可以存储对象vi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论