- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HTTP协议——“无状态的协议” Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的“无状态”连接。只要有一个希望浏览器返回一个页面、图像或其他资源的请求,就发生以下事情: 连接到服务器 告诉服务器想要的页面、图像或其他项 服务器发送请求资源 服务器切断连接,把用户忘得干干净净。 ASP.Net Web Form的“连续”和“有状态”的假象 ASP.NET的设计者们,从实际访问者的角度重新考虑了这一过程:访问者打开一个页面,点击一个按钮,看到新的画面……这一切似乎都是连续的。 状态管理 Web应用本质上是无状态的,如需保存状态则需要做状态管理,状态维护是对同一页或不同页的多个请求维护状态和页信息的过程 ,保持用户信息(状态)的连续性。 状态管理 状态维护技术 视图状态:使用一个或多个隐藏域来保存控件的状态。 控件状态:当开发自定义控件时,保存控件的状态数据。 隐藏域:标准的HTML隐藏域。 Cookie:用于在客户端保存少量的数据。 查询字符串:查询字符串是在页URL的结尾附加的信息。 应用程序状态:用于保存服务器端的全局应用程序信息。 会话状态:保存会话状态信息。 配置文件属性:ASP.NET提供了一个称为配置文件属性的功能,可以保存服务器端的全局应用程序信息。 客户端状态管理 客户端状态管理 不如服务器端状态管理选项安全 不如服务器端管理选项可靠 可存储的信息量可能受到限制 服务器端状态管理 可通过应用程序状态(Application)、会话状态(Session)、配置文件、数据库保存会话状态来实现 跨页提交 PreviousPage 使用 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支持。 可扩展性。 使用会话状态的缺点: 使用会话状态时,要注意其性能问题。 应用程序状态的利弊 使用应用程序状态的优点如下: 实现简单。应用程序状态易于使用,通过键/值对进行存储和访问。 应用程序的范围。由于应用程序状态可供应用程序中的所有页来访问,因此在应用程序状态中存储信息可能意味着仅保留信息的一个副本。 使用应用程序状态的缺点如下: 资源要求。由于应用程序状态存储在内存中,因此比将数据保存到磁盘或数据库中速度更快。但是,在应用程序状态中存储较大的数据块可能会耗尽服务器内存,这会导致服务器将内存分页到磁盘。 易失性。由于应用程序状态存储在服务器内存中,因此每当停止或重新启动应用程序时应用程序状态都将丢失。 使用会话状态 删除会话状态中的项 调用Session对象的Clear和RemoveAll方法来删除会话状态集合中的所有项 调用Remove和RemoveAt删除其中的某一项 调用Abandon方法取消当前会话,即会话立即过期 Session.Remove(UserName); Session. Abandon(); 【例5-4】演示会话状态变量的使用。 应用程序状态 应用程序状态概述 添加和读取应用程序状态中的值 演示和练习:使用应用程序状态来存储信息 删除应用程序状态的值 应用程序状态概述 应用程序状态是一种全局存储机制,可以供Web应用程序中的所有页面(或Global.asax文件)访问 存储在HttpApplicationState 类的实例中,该类在客户端第一次从某个特定的 ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创建 目的在于存储需要在服务
文档评论(0)