web应用程序设计第7章.pptx

上传人:xin****828 文档编号:20793971 上传时间:2021-04-18 格式:PPTX 页数:30 大小:193.54KB
返回 下载 相关 举报
web应用程序设计第7章.pptx_第1页
第1页 / 共30页
web应用程序设计第7章.pptx_第2页
第2页 / 共30页
web应用程序设计第7章.pptx_第3页
第3页 / 共30页
点击查看更多>>
资源描述
1 1.状态管理概述2.状态管理的分类3.状态管理的使用 2 1、状态管理状态:同一页面或不同页面的多个请求,其中共同的信息。状态管理:处理上述信息的过程。使用状态管理的场合:电子商务网站:保存用户选定的商品等内容同一页面的往返过程中状态的保存,或在不同的页面之间保存状态 3 1.状态管理有状态:在系统的处理过程中要保留一些信息无状态:协议对于事务处理没有记忆能力,每次请求都是独立的连接,不需要在每个请求之间共享数据等等。 HTTP协议是无状态协议。如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。 4 姓 名 请输入您的 登录信息: John 提交 Chen Web 服务器 Logi n. aspx Logi n. aspx Web 服务器 Hello John Chen Greeti ngs. aspx 请输入您的 登录信息: John 提交 Chen Hello Greeti ngs. aspx 我忘记您了! 姓 名 无 状 态 管 理 有 状 态 管 理 隐藏域HiddenField 例如: 程序中:hUser.Value = txtName.Text;视图状态ViewState 视图状态是一个字典对象,通过Page.ViewState公开对应于 程序中:ViewStatexxx = Hello World 查询字符串QueryString Response对象及其应用 Request对象及其应用 Server对象及其应用 (1)常用属性: Cookies:获取响应 Cookie 集合 (2)常用方法 BinaryWrite:输出二进制流 ClearContent :清空输出缓冲区流 Close:关闭到客户端的套接字连接 End: 发送当前缓冲区流并停止该页的执行 Flush:发送当前缓冲区流 Redirect:重定向到新的 URL Write|WriteFile:输出指定文本或 将指定的文件(3)Response对象的应用 :操作演示 实例7-1 (1)常用属性: Cookies | Files |Form| QueryString HttpMethod| Headers| ContentLength | TotalBytes FilePath|Path|PhysicalApplicationPath|PhysicalPath | Url UserHostAddress|UserHostName |Browser ClientCertificate |IsAuthenticated | IsSecureConnection(2)常用方法: MapPath SaveAs(3) Request对象的应用:例7_2 (1) 常用属性 MachineName:获取服务器的计算机名称 ScriptTimeout:获取和设置请求超时值(以秒计)(2) 常用方法 Execute: 在当前请求的上下文中执行指定的页。 HtmlEncode :对字符串进行HTML编码,以消除无效字符 HtmlDecode :对HTML字符串进行解码。 MapPath: 将虚拟路径映射为物理路径。 Transfer:终止当前页的执行,并执行指定的新页。(3) Server对象的应用:例7_3 1)Machine.config文件每个Web服务器上只有一个Machine.config文件存储本服务器上的针对所有Web应用程序的设置。2)Web.config文件 (ASP.NET阻止客户端访问该文件)一种XML文档,可在Web应用程序的根目录或子目录中创建。3)配置文件的继承规则 应用程序级的配置从服务器级的Machine.config文件继承设置;目录级的配置从应用程序级的Web.config继承设置;当配置发生冲突时,最低级别的设置覆盖继承来的设置。 例7_4在Web.config文件的节中添加键/值对基本格式: 利用ConfigurationSettings类的AppSettings检索格式: ConfigurationSettings. AppSettings键名 12 应 用 程 序 状 态 Web应 用 程 序 的 所 有 用 户 都可 以 访 问 该 信 息 Cookie 使 用 文 本 文 件 存 储 信 息 来 维护 状 态 会 话 状 态 只 有 特 定 会 话 中 的 用 户 可以 访 问 该 信 息 查 询 字 符 串 附 加 到 页 的 URL 末 尾 的 信 息数 据 库 在 某 些 情 况 中 , 希 望 使 用数 据 库 来 维 护 Web 站 点 上的 状 态 需要编写大量的代码,且 安全性较差,不推荐使用 13 服务器端状态管理的特点与客户端状态管理相比,具有更高的安全性,需要使用更多的 Web 服务器资源可通过应用程序状态(Application)、会话状态(Session)和数据库保存会话状态来实现Web 服务器 客户端计算机 应用程序和会话变量 SessionID 14 应用程序状态管理使用应用程序状态来保存每个活动 Web 应用程序的值该信息对整个应用程序的所有页面都是可见的使用键/值词典结构存储应用程序变量常用于存储多个会话共享的、不经常改变的信息优点:易于实现、全局范围缺点:全局范围、持久性、资源要求 Application对象的成员:常用属性: Count:返回应用程序状态集合中的对象的个数。 IsReadOnly:指示应用程序状态集合是否为只读的。 常用方法: Add | Remove | RemoveAt | Clear Lock:锁定Application对象,防止并发访问。 UnLock:取消对Application对象的锁定。Application对象的使用:例7-5 持久保存应用程序状态:例7-6 16 会话状态会话:客户端与Web服务器之间的连接使用会话状态保存每个活动 Web 应用程序会话的值会话状态的范围限于当前的浏览器会话使用键/值词典结构存储会话变量可扩展性较好:可以将会话信息存储在 Cookie 中、进程外服务器中或 SQL Server 中使用 SessionID 标识不同的会话不同的用户有不同的会话状态,同一用户在退出后返回,也将有不同的会话状态 17 会话状态管理优点:易于实现、具有会话特定的事件、持久性、平台可缩放性和可用于不支持 HTTP Cookie 的浏览器缺点:可能降低服务器性能 (1)常用属性: Count | IsReadOnly | IsNewSession | SessionID IsCookieless:表示会话 ID是否存储在 HTTP Cookie 中。 Timeout:设置会话失效时间(默认20分钟)(2)常用方法: Abandon:取消当前会话。 Add| Remove| RemoveAt |ClearSession对象的使用注意:会话变量不存在并发访问的问题,因此不需要锁定Session对象 例7-7 19 客户端状态管理不如服务器端状态管理选项安全不如服务器端管理选项可靠可存储的信息量可能受到限制使用 Cookie 维护状态持久性 Cookie临时性的或非持久性的 Cookie Web 服务器 客户端计算机 Cookie 用户可以删 除 Cookie 恶意的用户可通过某 些方法来“盗取” Cookie 并读取其中的内容 20 一个 Web 应用程序只有一个 Global.asax 文件位置: ASP.NET 应用程序的虚拟根目录中用来处理应用程序级事件和会话事件如果不定义 Global.asax 文件,ASP.NET 页框架假设您未定义任何应用程序或会话事件处理程序不能直接通过 URL 请求 Global.asax 文件 ASP. NET Web 服务器 客户端 ASP. NET HTTP 运行时环境 IIS Appli cati on_Begi nRequest Appli cati on_Authenti cateRequest Appli cati on_Authori zeRequest Appli cati on_ResolveRequestCache Appli cati on_Aqui reRequestState Appli cati on_PreRequestHandlerExecute Appli cati on_EndRequest Appli cati on_UpdateRequestCache Appli cati on_ReleaseRequestState Appli cati on_PostRequestHandlerExecute 页面执行过程 请求 响应 22 初始化应用程序/会话变量 Global.asax文件或其他地方初始化变量使用应用程序/会话变量 23 在 Global.asax 中初始化变量Web 应用程序的所有用户共享 Application 对象存储的信息Session 对象只存储特定用户会话的信息protected void Application_Start(Object sender,EventArgs e) ApplicationNumberofVisitors = 0; SessionCurrentVistitorNum = 1; 24 设置会话和应用程序变量读取会话和应用程序变量SessionBackColor = blue;Application.Lock();ApplicationNumberOfVisitors = (int)ApplicationNumberOfVisitors + 1;Application.UnLock();strBgColor = (string)SessionBackColor;lblNbVisitor.Text = ApplicationNumberOfVisitors.ToString(); 25 会话变量具有一定的生存期默认情况下,用户在20分钟内没有请求页面,会话会超时 在Web.config文件中更改会话生存期应用程序变量一直保存到Application_End事件被触发 26 Cookie概念使用 Cookie 保存会话数据从 Cookie 中检索信息 在ASP.NET中,Cookie是随着HTML文档一起发送到客户端的数据信息,它属于某个特定的站点。浏览器负责接收Cookie,并自动将其存储到磁盘文件,或浏览器所在的内存中。当客户端再次访问站点时,Cookie随URL请求一起自动发送给服务器。使用Cookie的优点:可以设置过期规则,过期时浏览器会自动删除Cookie信息。 Cookie是存储在客户端的数据,不需要任何服务器资源。 Cookie信息以磁盘文件的形式保存,可以持久保存。使用Cookie的缺点: Cookie信息量有限制。每个Cookie一般不能超过4KB,且最多20个Cookie。浏览器具有禁用Cookie的功能,因此Cookie是不可靠的。用户可能会篡改Cookie信息,从而导致安全隐患。 ASP.NET使用HttpCookie来封装Cookie HttpCookie对象常见属性有: Value:获取或设置单个 Cookie 值(string型) Expires:过期日期和时间(DateTime型) Values:一个 Cookie 对象所包含的键/值对的集合发送Cookie到客户端的原理把HttpCookie对象添加到Response.Cookies中ASP.NET通过IIS自动把Cookie发送给客户端浏览器收到Cookie后自动写入磁盘例7-8/7-9 29 HttpCookie objCookie = new HttpCookie(myCookie);DateTime now = DateTime.Now;objCookie.Values.Add(Time, now.ToString();objCookie.Values.Add(ForeColor, White);objCookie.Values.Add(BackColor, Blue);Response.Cookies.Add(objCookie);HttpCookie objCookie = new HttpCookie(myCookie);DateTime now = 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);指定过期时间,以创建持久性 Cooki eSet-Cookie: Username=John+Chen; path=/; domain=;Expires=Tuesday, 01-Feb-05 00.00.01 GMT 30 读取 CookieHttpCookie objCookie = Request.CookiesmyCookie;从 Cookie 中检索值lblTime.Text = objCookie.ValuesTime;lblTime.ForeColor = System.Drawing.Color.FromName(objCookie.ValuesForeColor);lblTime.BackColor = System.Drawing.Color.FromName(objCookie.ValuesBackColor);
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!