Web应用程序状态保存.ppt_第1页
Web应用程序状态保存.ppt_第2页
Web应用程序状态保存.ppt_第3页
Web应用程序状态保存.ppt_第4页
Web应用程序状态保存.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第8章Web应用程序状态保存,引例:按钮计数器(ClickCounter1.aspx),不管单击多少次按钮,始终只显示1次,2,引发“Web状态保持”问题的现实背景-HTTP协议的无状态性,在向Web服务器提交的多次HTTP请求之间,Web服务器不会保留前一次访问的状态信息,不管同一个客户端连续多少次访问,Web服务器都将其看成是一个“陌生人”的“拜访”。所谓“状态”,其实就是与每次HTTP请求相关联的一些信息,例如用户在某个页面上输入的一些数据。在实际开发中,往往需要在多次HTTP请求之间保存状态。因此,任何一个Web开发技术都必须面对这样一个问题并给出一个解决方案。,3,HTTP无状态特性,ASP.NET如何保存Web应用的状态?,在针对同一页面的多次请求间保存状态,1ViewState,Demo:ClickCounter2.aspx(UseViewState网站)要点:1如何区分是第一次访问还是第二次回发?Page类的IsPostBack属性2保存在ViewState对象中的数据都拥有一个唯一标识Key,对象本身则被称为值Value。,6,按钮计数器(版本2),哪些对象可以保存在ViewState中?,只有可以被“序列化”的对象才可以保存在ViewState中。所谓“序列化(Serializable)”,指的是将一个对象的属性值保存到一个流(Stream)对象中,在需要时可以从流对象中重新创建对象。要创建一个可序列化的类,只需要在类前面添加Serializable标记。Demo:ClickCounter3.aspx,7,ViewState揭秘第一次请求,创建页面类对象,调用其ProcessRequest()方法,提取出页面上的控件状态信息对象,将控件状态信息对象序列化,存入到一个隐藏域_VIEWSTATE中,生成HTML代码,HTTP请求,其中,其他处理工作,Client端,Server端,8,ViewState揭秘回发阶段,创建页面类对象,调用其ProcessRequest()方法,处理回发的数据,更新控件状态,进行一系列的后继处理工作,将当前控件状态信息对象序列化,存入到一个隐藏域_VIEWSTATE中,HTTP请求,其中,Client端,Server端,从发回的隐藏域_VIEWSTATE中提取信息,反序列化,得到状态对象,复原控件状态,生成HTML代码,其他处理工作,9,ViewState的不足,ViewState只能在同一个页面的多次回发间保存状态信息。它不能解决在多个页面间共享状态信息的问题,而这个问题在电子商务网站中是必须解决的。,10,在同一网站的多个页面间共享信息,2Session,Session,同一个浏览器窗口访问同一个网站的多个页面,称为“Session(会话状态)”。可以使用Session在多个页面间保存信息。Session的使用与ViewState类似,使用“SessionKey”的方式存取放在Session对象中的数据,12,Session示例:在线购物车,Demo:ShoppingCart,13,购物车示例程序的分析,商品有自己的标识:书book:复选框控件的ID计算机computer:复选框控件的ID通过检查页面上复选框选中与否,了解用户选中了哪些商品。并将这些选中的商品保存到Session中。这些信息按照“商品标识(Key)和商品名称(Value)”的格式保存。通过遍历保存在Session的购物记录了解用户选购了哪些商品,使用BulletedList控件显示它们。,14,购物车示例程序的要点,注意控件是如何动态创建的。注意页面状态是如何保存的。一个关键点:页面控件的事件响应函数的调用是在Page_Load()函数调用过之后请同学们在课后不看源码,自己动手将此示例程序做一遍,一定会对ASP.NET应用程序的开发有新的体会。,15,Session的进一步介绍,Session是有时间限制的,它的Timeout属性指明了Session有效的时间。当一个新的Session开始时,会触发一个Session_Start事件。当Session超时,或者程序中调用了Session.Abandon(),还包括ASP.NET网站被关

温馨提示

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

最新文档

评论

0/150

提交评论