第5章 Web应用的状态管理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章Web应用的状态管理整理ppt

HTTP协议——“无状态的协议” Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的“无状态”连接。只要有一个希望浏览器返回一个页面、图像或其他资源的请求,就发生以下事情: 连接到服务器 告诉服务器想要的页面、图像或其他项 服务器发送请求资源 服务器切断连接,把用户忘得干干净净。 ASP.Net Web Form的“连续”和“有状态”的假象 ASP.NET的设计者们,从实际访问者的角度重新考虑了这一过程:访问者打开一个页面,点击一个按钮,看到新的画面……这一切似乎都是连续的。 状态管理 Web应用本质上是无状态的,如需保存状态则需要做状态管理,状态维护是对同一页或不同页的多个请求维护状态和页信息的过程 ,保持用户信息(状态)的连续性。 状态管理 状态维护技术 视图状态:使用一个或多个隐藏域来保存控件的状态。 控件状态:当开发自定义控件时,保存控件的状态数据。 隐藏域:标准的HTML隐藏域。 Cookie:用于在客户端保存少量的数据。 查询字符串:查询字符串是在页URL的结尾附加的信息。 应用程序状态:用于保存服务器端的全局应用程序信息。 会话状态:保存会话状态信息。 配置文件属性:ASP.NET提供了一个称为配置文件属性的功能,可以保存服务器端的全局应用程序信息。 客户端状态管理 客户端状态管理 不如服务器端状态管理选项安全 不如服务器端管理选项可靠 可存储的信息量可能受到限制 服务器端状态管理 可通过应用程序状态(Application)、会话状态(Session)、配置文件、数据库保存会话状态来实现 Cookie的用途 用户的个人配置 登录和“remember me” 弹出窗口 会话状态是ASP.NET中非常重要的服务器端状态管理技术,同时也是功能很强大的状态管理技术。 会话状态是特定于用户的,当一个用户开始访问Web应用程序时,将会产生一个会话状态。 不同的用户具有不同的会话状态,如果有一万个用户,将会有一万个会话状态。 会话状态在存储与用户相关的信息方面非常有用,如博客登录后就可以使用会话状态存储通过验证的用户信息。 Session_Start事件:通过向Global.asax文件添加一个名为Session_Start的事件过程来处理。如果请求开始一个新会话,Session_Start事件过程会在请求开始时运行。如果请求不包含SessionID值或请求所包含的SessionID属性引用一个已过期的会话,则会开始一个新会话。可以使用Session_Start事件初始化会话变量并跟踪与会话相关的信息。 Session_End事件:通过向Global.asax文件添加一个名为Session_End的事件过程来处理。Session_End事件过程在调用Abandon方法或会话过期时运行。如果超过了某一会话Timeout属性指定的分钟数并且在此期间内没有请求该会话,则该会话过期。 会话状态的利弊 使用会话状态的优点: 实现简单。 会话特定的事件。 数据持久性。 平台可伸缩性。 无需Cookie支持。 可扩展性。 使用会话状态的缺点: 使用会话状态时,要注意其性能问题。 应用程序状态的利弊 使用应用程序状态的优点如下: 实现简单。应用程序状态易于使用,通过键/值对进行存储和访问。 应用程序的范围。由于应用程序状态可供应用程序中的所有页来访问,因此在应用程序状态中存储信息可能意味着仅保留信息的一个副本。 使用应用程序状态的缺点如下: 资源要求。由于应用程序状态存储在内存中,因此比将数据保存到磁盘或数据库中速度更快。但是,在应用程序状态中存储较大的数据块可能会耗尽服务器内存,这会导致服务器将内存分页到磁盘。 易失性。由于应用程序状态存储在服务器内存中,因此每当停止或重新启动应用程序时应用程序状态都将丢失。 * * * * * * * * * * 一种映射,存储键和值的对。例如:可以存储电话号码薄:张三、0890870987;李四、004356344。。。 现在一般不使用HashTable了,使用HashMap来替代。 举个例子: HashMap tel = new HashMap(); tel.put(张三,0890870987); tel.put(李四,004356344); 如果我想知道张三的电话号码,那么就这样: tel.get(张三); 注意:视图状态中只能存储可序列化的对象。 参见第7章/上课示例/ClientStateDemo项目的ViewStateDemo.aspx * 隐藏域中不能存储比较敏感的数据,如果要存必须添加加密和解密代码,因此增加了额外的开销。 * * * CookieDemo.aspx * 比单值的Cookie节省系统开销。一个网站最多20个cookie。 * * * 对域范围的

文档评论(0)

zyzsaa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档