web应用程序设计第7章.ppt_第1页
web应用程序设计第7章.ppt_第2页
web应用程序设计第7章.ppt_第3页
web应用程序设计第7章.ppt_第4页
web应用程序设计第7章.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1 第7章Web应用程序的状态管理 状态管理概述状态管理的分类状态管理的使用 2 一 状态管理概述 1 状态管理状态 同一页面或不同页面的多个请求 其中共同的信息 状态管理 处理上述信息的过程 使用状态管理的场合 电子商务网站 保存用户选定的商品等内容同一页面的往返过程中状态的保存 或在不同的页面之间保存状态 3 一 状态管理概述 状态管理有状态 在系统的处理过程中要保留一些信息无状态 协议对于事务处理没有记忆能力 每次请求都是独立的连接 不需要在每个请求之间共享数据等等 HTTP协议是无状态协议 如果后续处理需要前面的信息 则它必须重传 这样可能导致每次连接传送的数据量增大 4 一 状态管理概述 姓 名 请输入您的登录信息 John 提交 Chen Web服务器 Login aspx Login aspx Web服务器 HelloJohnChen Greetings aspx 请输入您的登录信息 John 提交 Chen Hello Greetings aspx 我忘记您了 姓 名 无状态管理 有状态管理 2 几种常见的状态维护技术介绍 隐藏域HiddenField例如 程序中 hUser Value txtName Text 视图状态ViewState视图状态是一个字典对象 通过Page ViewState公开对应于程序中 ViewState xxx HelloWorld 查询字符串QueryString 3 ASP NET的内置对象与状态维护 Response对象及其应用Request对象及其应用Server对象及其应用 Response对象及其应用 1 常用属性 Cookies 获取响应Cookie集合 2 常用方法BinaryWrite 输出二进制流ClearContent 清空输出缓冲区流Close 关闭到客户端的套接字连接End 发送当前缓冲区流并停止该页的执行Flush 发送当前缓冲区流Redirect 重定向到新的URLWrite WriteFile 输出指定文本或将指定的文件 3 Response对象的应用 操作演示实例7 1 Request对象及其应用 1 常用属性 Cookies Files Form QueryStringHttpMethod Headers ContentLength TotalBytesFilePath Path PhysicalApplicationPath PhysicalPath UrlUserHostAddress UserHostName BrowserClientCertificate IsAuthenticated IsSecureConnection 2 常用方法 MapPathSaveAs 3 Request对象的应用 例7 2 Server对象及其应用 1 常用属性MachineName 获取服务器的计算机名称ScriptTimeout 获取和设置请求超时值 以秒计 2 常用方法Execute 在当前请求的上下文中执行指定的页 HtmlEncode 对字符串进行HTML编码 以消除无效字符HtmlDecode 对HTML字符串进行解码 MapPath 将虚拟路径映射为物理路径 Transfer 终止当前页的执行 并执行指定的新页 3 Server对象的应用 例7 3 4 Web应用系统的配置文件 1 Machine config文件每个Web服务器上只有一个Machine config文件存储本服务器上的针对所有Web应用程序的设置 2 Web config文件 ASP NET阻止客户端访问该文件 一种XML文档 可在Web应用程序的根目录或子目录中创建 3 配置文件的继承规则应用程序级的配置从服务器级的Machine config文件继承设置 目录级的配置从应用程序级的Web config继承设置 当配置发生冲突时 最低级别的设置覆盖继承来的设置 配置文件在状态维护中的应用 例7 41 保存数据的技巧在Web config文件的节中添加键 值对基本格式 2 检索数据的技巧利用ConfigurationSettings类的AppSettings检索格式 ConfigurationSettings AppSettings 键名 12 二 状态管理的类型 需要编写大量的代码 且安全性较差 不推荐使用 13 1 服务器端状态管理 服务器端状态管理的特点与客户端状态管理相比 具有更高的安全性 需要使用更多的Web服务器资源可通过应用程序状态 Application 会话状态 Session 和数据库保存会话状态来实现 14 1 服务器端状态管理 应用程序状态管理使用应用程序状态来保存每个活动Web应用程序的值该信息对整个应用程序的所有页面都是可见的使用键 值词典结构存储应用程序变量常用于存储多个会话共享的 不经常改变的信息优点 易于实现 全局范围缺点 全局范围 持久性 资源要求 Application对象 Application对象的成员 常用属性 Count 返回应用程序状态集合中的对象的个数 IsReadOnly 指示应用程序状态集合是否为只读的 常用方法 Add Remove RemoveAt ClearLock 锁定Application对象 防止并发访问 UnLock 取消对Application对象的锁定 Application对象的使用 例7 5持久保存应用程序状态 例7 6 16 服务器端状态管理 会话状态会话 客户端与Web服务器之间的连接使用会话状态保存每个活动Web应用程序会话的值会话状态的范围限于当前的浏览器会话使用键 值词典结构存储会话变量可扩展性较好 可以将会话信息存储在Cookie中 进程外服务器中或SQLServer中使用SessionID标识不同的会话不同的用户有不同的会话状态 同一用户在退出后返回 也将有不同的会话状态 17 服务器端状态管理 会话状态管理优点 易于实现 具有会话特定的事件 持久性 平台可缩放性和可用于不支持HTTPCookie的浏览器缺点 可能降低服务器性能 Session对象 1 常用属性 Count IsReadOnly IsNewSession SessionIDIsCookieless 表示会话ID是否存储在HTTPCookie中 Timeout 设置会话失效时间 默认20分钟 2 常用方法 Abandon 取消当前会话 Add Remove RemoveAt ClearSession对象的使用注意 会话变量不存在并发访问的问题 因此不需要锁定Session对象例7 7 19 2 客户端状态管理 客户端状态管理不如服务器端状态管理选项安全不如服务器端管理选项可靠可存储的信息量可能受到限制使用Cookie维护状态持久性Cookie临时性的或非持久性的Cookie 用户可以删除Cookie 恶意的用户可通过某些方法来 盗取 Cookie并读取其中的内容 20 3 Global asax文件 一个Web应用程序只有一个Global asax文件位置 ASP NET应用程序的虚拟根目录中用来处理应用程序级事件和会话事件如果不定义Global asax文件 ASP NET页框架假设您未定义任何应用程序或会话事件处理程序不能直接通过URL请求Global asax文件 Global asax文件 ASP NETWeb服务器 客户端 ASP NETHTTP运行时环境 IIS Application BeginRequest Application AuthenticateRequest Application AuthorizeRequest Application ResolveRequestCache Application AquireRequestState Application PreRequestHandlerExecute Application EndRequest Application UpdateRequestCache Application ReleaseRequestState Application PostRequestHandlerExecute 页面执行过程 请求 响应 22 三 应用程序 会话状态管理方法 初始化应用程序 会话变量Global asax文件或其他地方初始化变量使用应用程序 会话变量 23 1 初始化应用程序变量和会话变量 在Global asax中初始化变量Web应用程序的所有用户共享Application对象存储的信息Session对象只存储特定用户会话的信息 protectedvoidApplication Start Objectsender EventArgse Application NumberofVisitors 0 Session CurrentVistitorNum 1 24 2 使用应用程序变量和会话变量 设置会话和应用程序变量读取会话和应用程序变量 Session BackColor blue Application Lock Application NumberOfVisitors int Application NumberOfVisitors 1 Application UnLock strBgColor string Session BackColor lblNbVisitor Text Application NumberOfVisitors ToString 25 3 应用程序 会话变量的持续时间 会话变量具有一定的生存期默认情况下 用户在20分钟内没有请求页面 会话会超时在Web config文件中更改会话生存期应用程序变量一直保存到Application End事件被触发 26 4 Cookie Cookie概念使用Cookie保存会话数据从Cookie中检索信息 Cookie概念 在ASP NET中 Cookie是随着HTML文档一起发送到客户端的数据信息 它属于某个特定的站点 浏览器负责接收Cookie 并自动将其存储到磁盘文件 或浏览器所在的内存中 当客户端再次访问站点时 Cookie随URL请求一起自动发送给服务器 使用Cookie的优点 可以设置过期规则 过期时浏览器会自动删除Cookie信息 Cookie是存储在客户端的数据 不需要任何服务器资源 Cookie信息以磁盘文件的形式保存 可以持久保存 使用Cookie的缺点 Cookie信息量有限制 每个Cookie一般不能超过4KB 且最多20个Cookie 浏览器具有禁用Cookie的功能 因此Cookie是不可靠的 用户可能会篡改Cookie信息 从而导致安全隐患 Cookie概念 ASP NET使用HttpCookie来封装CookieHttpCookie对象常见属性有 Value 获取或设置单个Cookie值 string型 Expires 过期日期和时间 DateTime型 Values 一个Cookie对象所包含的键 值对的集合发送Cookie到客户端的原理把HttpCookie对象添加到Response Cookies中ASP NET通过IIS自动把Cookie发送给客户端浏览器收到Cookie后自动写入磁盘例7 8 7 9 29 使用Cookie保存会话数据 HttpCookieobjCookie newHttpCookie myCookie DateTimenow DateTime Now objCookie Values Add Time now ToString objCookie Values Add ForeColor White objCookie Values Add BackColor Blue Response Cookies Add objCookie HttpCookieobjCookie newHttpCookie myCookie DateTimenow DateTime Now objCookie Values Add Time now ToString objCookie Values Add ForeColor White objCookie Values Add BackColor Blue objCookie Expires DateTime now AddHours 1 Response Cookies Add objCookie 指定过期时间 以创建持久性Cookie Set Cookie Username John Chen path domain Expires Tuesday 01 Feb 05

温馨提示

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

评论

0/150

提交评论