web应用程序设计第7章ppt课件

上传人:我*** 文档编号:148528508 上传时间:2020-10-20 格式:PPTX 页数:30 大小:154.01KB
返回 下载 相关 举报
web应用程序设计第7章ppt课件_第1页
第1页 / 共30页
web应用程序设计第7章ppt课件_第2页
第2页 / 共30页
web应用程序设计第7章ppt课件_第3页
第3页 / 共30页
web应用程序设计第7章ppt课件_第4页
第4页 / 共30页
web应用程序设计第7章ppt课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《web应用程序设计第7章ppt课件》由会员分享,可在线阅读,更多相关《web应用程序设计第7章ppt课件(30页珍藏版)》请在金锄头文库上搜索。

1、1,第7章 Web应用程序的状态管理,状态管理概述 状态管理的分类 状态管理的使用,2,一、状态管理概述,1、状态管理 状态:同一页面或不同页面的多个请求,其中共同的信息。 状态管理:处理上述信息的过程。 使用状态管理的场合: 电子商务网站:保存用户选定的商品等内容 同一页面的往返过程中状态的保存,或在不同的页面之间保存状态,3,一、状态管理概述,状态管理 有状态:在系统的处理过程中要保留一些信息 无状态:协议对于事务处理没有记忆能力,每次请求都是独立的连接,不需要在每个请求之间共享数据等等。 HTTP协议是无状态协议。如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量

2、增大。,4,一、状态管理概述,姓,名,请输入您的 登录信息:,John,提交,Chen,Web 服务器,Login.aspx,Login.aspx,Web 服务器,Hello John Chen,Greetings.aspx,请输入您的 登录信息:,John,提交,Chen,Hello,Greetings.aspx,我忘记您了!,姓,名,无状态管理,有状态管理,2、几种常见的状态维护技术介绍,隐藏域HiddenField 例如: 程序中:hUser.Value = txtName.Text; 视图状态ViewState 视图状态是一个字典对象,通过Page.ViewState公开 对应于 程序

3、中:ViewStatexxx = Hello World 查询字符串QueryString,3、ASP.NET的内置对象与状态维护,Response对象及其应用 Request对象及其应用 Server对象及其应用,Response对象及其应用,(1)常用属性: Cookies:获取响应 Cookie 集合 (2)常用方法 BinaryWrite:输出二进制流 ClearContent :清空输出缓冲区流 Close:关闭到客户端的套接字连接 End: 发送当前缓冲区流并停止该页的执行 Flush:发送当前缓冲区流 Redirect:重定向到新的 URL Write|WriteFile:输出指

4、定文本或 将指定的文件 (3)Response对象的应用 :操作演示 实例7-1,Request对象及其应用,(1)常用属性: Cookies | Files |Form| QueryString HttpMethod| Headers| ContentLength | TotalBytes FilePath|Path|PhysicalApplicationPath|PhysicalPath | Url UserHostAddress|UserHostName |Browser ClientCertificate |IsAuthenticated | IsSecureConnection (2

5、)常用方法: MapPath SaveAs (3) Request对象的应用:例7_2,Server对象及其应用,(1) 常用属性 MachineName:获取服务器的计算机名称 ScriptTimeout:获取和设置请求超时值(以秒计) (2) 常用方法 Execute: 在当前请求的上下文中执行指定的页。 HtmlEncode :对字符串进行HTML编码,以消除无效字符 HtmlDecode :对HTML字符串进行解码。 MapPath: 将虚拟路径映射为物理路径。 Transfer:终止当前页的执行,并执行指定的新页。 (3) Server对象的应用:例7_3,4、Web应用系统的配置文

6、件,1)Machine.config文件 每个Web服务器上只有一个Machine.config文件 存储本服务器上的针对所有Web应用程序的设置。 2)Web.config文件 (ASP.NET阻止客户端访问该文件) 一种XML文档,可在Web应用程序的根目录或子目录中创建。 3)配置文件的继承规则 应用程序级的配置从服务器级的Machine.config文件继承设置; 目录级的配置从应用程序级的Web.config继承设置; 当配置发生冲突时,最低级别的设置覆盖继承来的设置。,配置文件在状态维护中的应用,例7_4 1)保存数据的技巧 在Web.config文件的节中添加键/值对 基本格式:

7、 2)检索数据的技巧 利用ConfigurationSettings类的AppSettings检索 格式: ConfigurationSettings. AppSettings键名,12,二、状态管理的类型,需要编写大量的代码,且 安全性较差,不推荐使用,13,1、服务器端状态管理,服务器端状态管理的特点 与客户端状态管理相比,具有更高的安全性,需要使用更多的 Web 服务器资源 可通过应用程序状态(Application)、会话状态(Session)和数据库保存会话状态来实现,14,1、服务器端状态管理,应用程序状态管理 使用应用程序状态来保存每个活动 Web 应用程序的值 该信息对整个应用

8、程序的所有页面都是可见的 使用键/值词典结构存储应用程序变量 常用于存储多个会话共享的、不经常改变的信息 优点:易于实现、全局范围 缺点:全局范围、持久性、资源要求,Application对象,Application对象的成员: 常用属性: Count:返回应用程序状态集合中的对象的个数。 IsReadOnly:指示应用程序状态集合是否为只读的。 常用方法: Add | Remove | RemoveAt | Clear Lock:锁定Application对象,防止并发访问。 UnLock:取消对Application对象的锁定。 Application对象的使用:例7-5 持久保存应用程序

9、状态:例7-6,16,服务器端状态管理,会话状态 会话:客户端与Web服务器之间的连接 使用会话状态保存每个活动 Web 应用程序会话的值 会话状态的范围限于当前的浏览器会话 使用键/值词典结构存储会话变量 可扩展性较好:可以将会话信息存储在 Cookie 中、进程外服务器中或 SQL Server 中 使用 SessionID 标识不同的会话 不同的用户有不同的会话状态,同一用户在退出后返回,也将有不同的会话状态,17,服务器端状态管理,会话状态管理 优点:易于实现、具有会话特定的事件、持久性、平台可缩放性和可用于不支持 HTTP Cookie 的浏览器 缺点:可能降低服务器性能,Sessi

10、on对象,(1)常用属性: Count | IsReadOnly | IsNewSession | SessionID IsCookieless:表示会话 ID是否存储在 HTTP Cookie 中。 Timeout:设置会话失效时间(默认20分钟) (2)常用方法: Abandon:取消当前会话。 Add| Remove| RemoveAt |Clear Session对象的使用 注意:会话变量不存在并发访问的问题,因此不需要锁定Session对象 例7-7,19,2、客户端状态管理,客户端状态管理 不如服务器端状态管理选项安全 不如服务器端管理选项可靠 可存储的信息量可能受到限制 使用 C

11、ookie 维护状态 持久性 Cookie 临时性的或非持久性的 Cookie,用户可以删 除 Cookie,恶意的用户可通过某 些方法来“盗取” Cookie 并读取其中的内容,20,3、Global.asax 文件,一个 Web 应用程序只有一个 Global.asax 文件 位置: ASP.NET 应用程序的虚拟根目录中 用来处理应用程序级事件和会话事件 如果不定义 Global.asax 文件,ASP.NET 页框架假设您未定义任何应用程序或会话事件处理程序 不能直接通过 URL 请求 Global.asax 文件,Global.asax 文件,ASP.NET Web 服务器,客户端,

12、ASP.NET HTTP 运行时环境,IIS,Application_BeginRequest,Application_AuthenticateRequest,Application_AuthorizeRequest,Application_ResolveRequestCache,Application_AquireRequestState,Application_PreRequestHandlerExecute,Application_EndRequest,Application_UpdateRequestCache,Application_ReleaseRequestState,Appli

13、cation_PostRequestHandlerExecute,页面执行过程,请求,响应,22,三、应用程序/会话状态管理方法,初始化应用程序/会话变量 Global.asax文件 或其他地方初始化变量 使用应用程序/会话变量,23,1、初始化应用程序变量和会话变量,在 Global.asax 中初始化变量 Web 应用程序的所有用户共享 Application 对象存储的信息 Session 对象只存储特定用户会话的信息,protected void Application_Start(Object sender,EventArgs e) ApplicationNumberofVisito

14、rs = 0; SessionCurrentVistitorNum = 1; ,24,2、使用应用程序变量和会话变量,设置会话和应用程序变量 读取会话和应用程序变量,SessionBackColor = blue; Application.Lock(); ApplicationNumberOfVisitors = (int)ApplicationNumberOfVisitors + 1; Application.UnLock();,strBgColor = (string)SessionBackColor; lblNbVisitor.Text = ApplicationNumberOfVisi

15、tors.ToString();,25,3、应用程序/会话变量的持续时间,会话变量具有一定的生存期 默认情况下,用户在20分钟内没有请求页面,会话会超时 在Web.config文件中更改会话生存期 应用程序变量一直保存到Application_End事件被触发, ,26,4、Cookie,Cookie概念 使用 Cookie 保存会话数据 从 Cookie 中检索信息,Cookie概念,在ASP.NET中,Cookie是随着HTML文档一起发送到客户端的数据信息,它属于某个特定的站点。浏览器负责接收Cookie,并自动将其存储到磁盘文件,或浏览器所在的内存中。当客户端再次访问站点时,Cooki

16、e随URL请求一起自动发送给服务器。 使用Cookie的优点: 可以设置过期规则,过期时浏览器会自动删除Cookie信息。 Cookie是存储在客户端的数据,不需要任何服务器资源。 Cookie信息以磁盘文件的形式保存,可以持久保存。 使用Cookie的缺点: Cookie信息量有限制。每个Cookie一般不能超过4KB,且最多20个Cookie。 浏览器具有禁用Cookie的功能,因此Cookie是不可靠的。 用户可能会篡改Cookie信息,从而导致安全隐患。,Cookie概念,ASP.NET使用HttpCookie来封装Cookie HttpCookie对象常见属性有: Value:获取或设置单个 Cookie 值(string型) Expires:过期日期和时间(DateTime型) Values:一个 Cookie 对象所包含的键/值对的集合 发送Cookie到客户端的原理 把HttpCookie对象添加到Response.Cookies中 ASP.NET通过IIS自动把Cookie发送给客户端 浏览器收

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号