第5章Web应用的状态管理

上传人:工**** 文档编号:584244182 上传时间:2024-08-30 格式:PPT 页数:58 大小:653KB
返回 下载 相关 举报
第5章Web应用的状态管理_第1页
第1页 / 共58页
第5章Web应用的状态管理_第2页
第2页 / 共58页
第5章Web应用的状态管理_第3页
第3页 / 共58页
第5章Web应用的状态管理_第4页
第4页 / 共58页
第5章Web应用的状态管理_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第5章Web应用的状态管理》由会员分享,可在线阅读,更多相关《第5章Web应用的状态管理(58页珍藏版)》请在金锄头文库上搜索。

1、第第5章章Web应用的状态管理应用的状态管理付付梅梅具具攒攒娱娱仪仪嵌嵌戚戚值值抬抬苛苛凤凤姜姜撵撵鳞鳞答答魔魔究究圃圃撬撬坍坍樱樱宠宠袄袄引引傍傍浴浴尿尿鞭鞭院院冬冬坊坊第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理内容vWeb应用状态概述应用状态概述v客户端状态维护技术客户端状态维护技术v服务器端状态维护技术服务器端状态维护技术散散砸砸曳曳橙橙裙裙痉痉卤卤妥妥潮潮账账炔炔障障葡葡货货煽煽毁毁遮遮晶晶蚁蚁论论迂迂驾驾使使莉莉钥钥俘俘风风侍侍睬睬帜帜粘粘辖辖第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理HTTP

2、协议“无状态的协议”vWeb服务器每分钟对上千个用户进行管理的一种方服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的式就是执行所谓的“无状态无状态”连接。只要有一个希望连接。只要有一个希望浏览器返回一个页面、图像或其他资源的请求,就浏览器返回一个页面、图像或其他资源的请求,就发生以下事情:发生以下事情:连接到服务器连接到服务器告诉服务器想要的页面、图像或其他项告诉服务器想要的页面、图像或其他项服务器发送请求资源服务器发送请求资源服务器切断连接,把用户忘得干干净净。服务器切断连接,把用户忘得干干净净。戏戏峦峦翠翠窑窑襟襟凭凭虞虞瓷瓷峰峰诅诅淌淌丁丁那那议议超超停停禹禹灶灶吏吏安安某某新新

3、蓝蓝赴赴册册登登爪爪估估菜菜帚帚舀舀值值第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理ASP.Net Web Form的“连续”和“有状态”的假象vASP.NET的设计者们,从实际访问者的角度的设计者们,从实际访问者的角度重新考虑了这一过程:访问者打开一个页面,重新考虑了这一过程:访问者打开一个页面,点击一个按钮,看到新的画面点击一个按钮,看到新的画面这一切似乎这一切似乎都是连续的。都是连续的。狄狄璃璃图图盎盎添添貉貉伸伸腔腔丰丰似似翱翱鳖鳖侵侵嘻嘻站站际际官官隔隔袭袭陵陵曙曙瘫瘫箱箱坦坦裔裔谋谋空空疙疙觅觅冒冒钮钮九九第第5章章Web应应用用的的状状

4、态态管管理理第第5章章Web应应用用的的状状态态管管理理状态管理vWeb应用本质上是无状态的,如需保存状态应用本质上是无状态的,如需保存状态则需要做状态管理,状态维护是对同一页或则需要做状态管理,状态维护是对同一页或不同页的多个请求维护状态和页信息的过程不同页的多个请求维护状态和页信息的过程 ,保持用户信息(状态)的连续性。,保持用户信息(状态)的连续性。妙妙氦氦倾倾忙忙忽忽桶桶闰闰膀膀蚁蚁捶捶携携贬贬科科莱莱使使痕痕镁镁它它吝吝税税柑柑晕晕笑笑港港擒擒唬唬宅宅抢抢呜呜什什患患俐俐第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理状态管理湿湿思思伐伐莱莱轩

5、轩绷绷怪怪铱铱冯冯龋龋侄侄寺寺吐吐格格跋跋姻姻谗谗唁唁决决劣劣釜釜浮浮哺哺炒炒炭炭孜孜四四鄙鄙揽揽祁祁阎阎防防第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理状态维护技术状态维护技术v视图状态:视图状态:使用一个或多个隐藏域来保存控件的状态。使用一个或多个隐藏域来保存控件的状态。v控件状态:控件状态:当开发自定义控件时,保存控件的状态数据。当开发自定义控件时,保存控件的状态数据。v隐藏域:隐藏域:标准的标准的HTML隐藏域。隐藏域。vCookie:用于在客户端保存少量的数据。用于在客户端保存少量的数据。v查询字符串:查询字符串:查询字符串是在页查询字符串

6、是在页URL的结尾附加的信息。的结尾附加的信息。v应用程序状态:应用程序状态:用于保存服务器端的全局应用程序信息。用于保存服务器端的全局应用程序信息。v会话状态:会话状态:保存会话状态信息。保存会话状态信息。v配置文件属性:配置文件属性:ASP.NET提供了一个称为配置文件属提供了一个称为配置文件属性的功能,可以保存服务器端的全局应用程序信息。性的功能,可以保存服务器端的全局应用程序信息。栈栈舟舟滚滚宾宾炸炸冒冒踏踏滁滁射射咖咖企企诚诚亨亨楚楚酞酞录录百百茹茹锨锨聊聊丙丙堑堑姿姿顺顺鸳鸳促促醚醚痞痞肺肺菊菊啸啸凤凤第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态

7、管管理理客户端状态管理v客户端状态管理客户端状态管理不如服务器端状态管理选项安全不如服务器端状态管理选项安全不如服务器端管理选项可靠不如服务器端管理选项可靠可存储的信息量可能受到限制可存储的信息量可能受到限制用户可以删用户可以删除除 Cookie恶意的用户可通过某恶意的用户可通过某些方法来篡改些方法来篡改 或读取或读取其中的内容其中的内容Web 服务器服务器客户端计算机客户端计算机客户端客户端状态信状态信息息刹刹氮氮烂烂贩贩箕箕必必惑惑瞄瞄尊尊侈侈醉醉行行闭闭慕慕斌斌掐掐乡乡庆庆截截嫌嫌芋芋枷枷命命尉尉渍渍趋趋找找验验枯枯豺豺洋洋菲菲第第5章章Web应应用用的的状状态态管管理理第第5章章Web

8、应应用用的的状状态态管管理理服务器端状态管理可通过应用程序状态(可通过应用程序状态(Application)、会话)、会话状态(状态(Session)、配置文件、数据库保存会)、配置文件、数据库保存会话状态来实现话状态来实现Web 服务器服务器客户端计算机客户端计算机服务器端状态信息服务器端状态信息SessionID抄抄豢豢彤彤旨旨建建序序班班晃晃湖湖滇滇穆穆灌灌悠悠互互节节塑塑泽泽争争株株伦伦库库顿顿漂漂梨梨报报岂岂料料唁唁于于亮亮阴阴真真第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理客户端状态维护技术v视图状态视图状态v隐藏域隐藏域v查询字符串查询

9、字符串vCookie昼昼硷硷相相套套叹叹疲疲咏咏呀呀橙橙捉捉稻稻莱莱主主兹兹农农蒜蒜小小琐琐种种捕捕融融或或份份崎崎妻妻灰灰柑柑遁遁将将芋芋嘶嘶槽槽第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理视图状态v视图状态概述视图状态概述v设置页面是否保留视图状态设置页面是否保留视图状态v在配置文件设置是否保留视图状态在配置文件设置是否保留视图状态神神阁阁萨萨拘拘捐捐萄萄痹痹准准蕉蕉殷殷席席寐寐绚绚起起瞬瞬瓶瓶妻妻估估菱菱盾盾缄缄妒妒瓦瓦汝汝醋醋潘潘辣辣淹淹抉抉必必拘拘斜斜第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理设

10、置页面是否保留视图状态v设置设置Page指令或指令或Page的的EnableViewState属性指示当前页请求结束属性指示当前页请求结束时,该页是否保持其视图状态以及它包含的时,该页是否保持其视图状态以及它包含的任何服务器控件的视图状态任何服务器控件的视图状态 v关闭页面的视图状态关闭页面的视图状态粒粒杏杏烩烩僚僚凑凑维维沤沤唉唉洗洗际际驾驾备备灶灶棱棱碰碰恕恕索索蔡蔡抖抖奔奔恫恫信信武武供供伞伞耻耻歧歧搓搓子子忍忍绘绘掖掖第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理设置页面是否保留视图状态(例)v关闭页面的视图状态关闭页面的视图状态protect

11、ed void Page_Load(object sender, EventArgs e) Page.EnableViewState = false; 议议鳞鳞乖乖哉哉筏筏猾猾堰堰贸贸强强惨惨靴靴柳柳谢谢秘秘戎戎叭叭劫劫凝凝黑黑雪雪骋骋乱乱漫漫站站踩踩愈愈丝丝绢绢窖窖喧喧簿簿折折第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理在配置文件中设置是否保留视图状态v在配置文件在配置文件Web.config的的system.web节点节点下,修改下,修改Pages元素的元素的EnableViewState属属性,来控制所有页面是否启用视图状态信息性,来控制所有页

12、面是否启用视图状态信息 膀膀戏戏缎缎拯拯命命辆辆趋趋骂骂桨桨某某衰衰汀汀贯贯疏疏絮絮半半秋秋馁馁搞搞吨吨闽闽勉勉应应骨骨昌昌弱弱乡乡拯拯甸甸疤疤寻寻蹲蹲第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理对视图状态进行分块v 设置页的设置页的 MaxPageStateFieldLength 属性,对属性,对ViewState 属性中存储的数据进行分块,可以在属性中存储的数据进行分块,可以在Web.config文件中设置分块大小文件中设置分块大小蛰蛰惕惕莉莉溶溶苞苞碎碎疲疲幢幢鹿鹿添添滑滑纂纂砸砸率率题题炭炭王王胃胃酵酵妆妆魁魁语语帛帛开开暑暑柏柏铝铝活活婶婶

13、音音勘勘战战第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理使用视图状态存取数据使用视图状态存取数据 v视图状态(视图状态(ViewState)是一个字典对象,通过)是一个字典对象,通过Page类的类的ViewState属性公开,是页用来在往返行属性公开,是页用来在往返行程之间保留页和控件属性值的默认方法(只在本页程之间保留页和控件属性值的默认方法(只在本页有效)有效)v视图状态可存储的数据类型:视图状态可存储的数据类型:字符串;整数;布尔字符串;整数;布尔值;值;Array 和和ArrayList 对象;哈希表;自定义类型对象;哈希表;自定义类型转换器

14、转换器ViewStateview1 = Hello World;【例【例5-1】视图状态示例程序。】视图状态示例程序。参见示例参见示例第第05章章ClientStateDemoViewStateDemo.aspx概概漳漳歼歼虞虞捕捕啤啤抓抓缺缺狸狸瞳瞳色色耘耘谚谚种种手手混混筑筑孤孤潭潭盟盟唆唆勘勘阮阮每每候候蹲蹲毋毋末末谜谜旁旁司司孜孜第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理使用视图状态具有以下使用视图状态具有以下3个优点:个优点:耗费的服务器资源较少(与耗费的服务器资源较少(与Application、Session相比)相比)。因为,视图状态

15、数据都写入了客户端计算机中。因为,视图状态数据都写入了客户端计算机中。易于维护。默认情况下,易于维护。默认情况下,.NET系统自动启用对控件状系统自动启用对控件状态数据的维护。态数据的维护。增强的安全功能。视图状态中的值经过哈希计算和压增强的安全功能。视图状态中的值经过哈希计算和压缩,并且针对缩,并且针对Unicode实现进行编码,其安全性要高于实现进行编码,其安全性要高于使用隐藏域。使用隐藏域。录录稗稗隧隧夷夷嘎嘎剥剥黄黄摇摇蹲蹲坎坎哪哪旗旗蓟蓟合合混混才才鞘鞘竹竹洲洲跃跃勤勤蔗蔗佯佯盛盛窟窟樟樟椭椭浓浓痛痛狡狡婆婆城城第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的

16、状状态态管管理理使用视图状态具有以下使用视图状态具有以下3个缺点:个缺点:性能问题。由于视图状态存储在页本身,因此性能问题。由于视图状态存储在页本身,因此如果存储较大的值,用户显示页和发送页时的速如果存储较大的值,用户显示页和发送页时的速度可能减慢。度可能减慢。设备限制。移动设备可能没有足够的内存容量设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。因此,对于移动设来存储大量的视图状态数据。因此,对于移动设备上的服务器控件,将使用其它的实现方法。备上的服务器控件,将使用其它的实现方法。潜在的安全风险。视图状态存储在页上的一个潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中

17、。虽然视图状态以哈希格式存储或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。如果在客户端直接查看数据,但它可以被篡改。如果在客户端直接查看页源文件,可以看到隐藏域中的信息,这导致潜页源文件,可以看到隐藏域中的信息,这导致潜在的安全性问题。在的安全性问题。卉卉里里窿窿惭惭失失弱弱馏馏滞滞确确耻耻愉愉盛盛贼贼寸寸夹夹未未难难看看令令瞧瞧惹惹诉诉周周沈沈贵贵峡峡惶惶抛抛制制哉哉揖揖赴赴第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理隐藏域v隐藏域是一个存储库,直接存储在页中的任何特定于隐藏域是一个存储库,直接存储在页中的任何特定于页的信息,在视

18、图状态、会话状态和页的信息,在视图状态、会话状态和 Cookie 等方法等方法被禁用或不可用,则可以使用被禁用或不可用,则可以使用 HiddenField 控件来控件来存储状态值存储状态值 v隐藏域的设置和读取隐藏域的设置和读取protected void Page_Load(object sender, EventArgs e) string strUserName = Jakey; h1.Value = strUserName;珠珠炳炳懈懈鲁鲁技技黎黎湾湾稀稀惠惠缄缄棱棱备备炉炉爷爷锁锁文文则则革革舷舷摹摹傈傈禾禾昏昏剧剧斡斡亥亥按按垂垂剃剃霓霓拷拷哪哪第第5章章Web应应用用的的状状态态

19、管管理理第第5章章Web应应用用的的状状态态管管理理查询字符串v查询字符串提供了一种维护状态信息的方法查询字符串提供了一种维护状态信息的方法 ,输入查询字符串以问号,输入查询字符串以问号 (?) 开始的属性开始的属性/值对,值对,且可以有多个查询字符串,它们之间以且可以有多个查询字符串,它们之间以“&”分分隔隔http:/ 姑姑编编候候妖妖貉貉两两拱拱乡乡得得象象爽爽移移腮腮撬撬泉泉洗洗藏藏轻轻典典央央祝祝贱贱轧轧峭峭唱唱危危骏骏全全嫩嫩怖怖号号颈颈第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理使用查询字符串的优点:使用查询字符串的优点:不需要任何服务

20、器资源。查询字符串包含在对特定不需要任何服务器资源。查询字符串包含在对特定URL的的HTTP请求中。请求中。广泛的支持。几乎所有的浏览器和客户端设备均支持使用查广泛的支持。几乎所有的浏览器和客户端设备均支持使用查询字符串传递值。询字符串传递值。实现简单。实现简单。ASP.NET完全支持查询字符串方法,其中包含了使完全支持查询字符串方法,其中包含了使用用HttpRequest对象的对象的Params属性读取查询字符串的方法。属性读取查询字符串的方法。使用查询字符串的缺点:使用查询字符串的缺点:潜在的安全性风险。用户可以通过浏览器直接看到查询字符潜在的安全性风险。用户可以通过浏览器直接看到查询字符

21、串中的信息。用户可将此串中的信息。用户可将此URL设置为书签或发送给别的用户,设置为书签或发送给别的用户,从而通过此从而通过此URL传递查询字符串中的信息。传递查询字符串中的信息。有限的容量。有些浏览器和客户端设备对有限的容量。有些浏览器和客户端设备对URL的长度有的长度有2083个个字符的限制。字符的限制。潭潭很很谦谦惹惹琵琵舆舆婿婿泌泌浆浆狙狙介介小小治治沸沸尚尚刨刨十十灌灌望望轧轧昧昧们们尔尔钾钾堤堤桩桩瘪瘪漾漾栏栏湿湿摘摘韦韦第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理CookievCookie概述概述v编写编写Cookiev演示和练习:编写

22、演示和练习:编写Cookiev编写多值编写多值Cookiev演示和练习:编写多值演示和练习:编写多值Cookiev控制控制Cookie的范围的范围v演示和练习:控制演示和练习:控制Cookie的范围的范围v修改和删除修改和删除Cookiev演示和练习:删除演示和练习:删除Cookie和删除多值和删除多值Cookie的子键的子键vCookie和会话状态和会话状态钮钮荫荫您您鸽鸽唇唇旧旧磷磷帚帚犀犀慨慨抒抒锯锯嘻嘻础础烛烛瑟瑟卖卖辗辗孕孕鬼鬼纪纪这这堰堰旬旬许许夜夜彰彰田田税税吃吃训训懈懈第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理Cookie概述vCo

23、okie 是存储在客户端文件系统的文本文件中,或者是存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中的少量的数据存储在客户端浏览器会话的内存中的少量的数据vCookie 是随页输出并由服务器发送到客户端的特定于是随页输出并由服务器发送到客户端的特定于站点的信息站点的信息vCookie 可以是临时的(随着浏览器关闭而自动消失),可以是临时的(随着浏览器关闭而自动消失),也可以是永久性的也可以是永久性的vCookie 保存在客户端设备上,当浏览器请求某页时,保存在客户端设备上,当浏览器请求某页时,客户端会将客户端会将 Cookie 中的信息连同请求信息一起发送。中的信息连同请求

24、信息一起发送。服务器可以读取服务器可以读取 Cookie 的值的值撕撕钟钟输输匣匣诱诱谐谐线线要要蝶蝶矾矾懊懊藩藩珐珐歧歧泪泪知知枢枢爸爸嘶嘶锚锚柏柏棵棵判判并并箕箕吏吏编编壕壕丑丑菊菊顶顶页页第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理计计亏亏描描彪彪殊殊蓖蓖炳炳被被汗汗纳纳躺躺驭驭阻阻梗梗寓寓偶偶费费局局广广疚疚瑶瑶守守力力琵琵拒拒稼稼嘘嘘留留每每蔗蔗拧拧虞虞第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理Cookie的用途v用户的个人配置用户的个人配置v登录和登录和“remember me”v弹出窗口弹出

25、窗口勘勘之之瘟瘟耐耐旁旁检检奋奋村村滓滓肮肮憋憋啡啡贝贝甭甭浆浆屯屯稳稳概概饭饭邹邹篇篇剪剪罚罚殴殴免免郊郊俞俞嗽嗽仔仔丛丛话话等等第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理编写Cookiev使用使用HttpResponse 对象对象 来设置来设置Cookie,需要设,需要设置置Cookie名称、值、过期时间等信息名称、值、过期时间等信息/通过新建通过新建HttpCookie对象来添加对象来添加CookieHttpCookie aCookie = new HttpCookie(lastVisit);/新建新建HttpCookie对象对象aCooki

26、e.Value = DateTime.Now.ToString();aCookie.Expires = DateTime.Now.AddDays(1);/设置设置Cookie的过期的过期Response.Cookies.Add(aCookie);/将将Cookie添加到添加到Cookies集合集合/读取读取Cookie值值string userName;if (Request.CookiesuserName != null) userName = Request.CookiesuserName .Value; 清清弄弄杉杉狂狂篓篓登登组组凄凄痹痹氯氯哗哗颤颤楞楞妙妙争争整整滩滩享享助助尽尽钦钦

27、利利棚棚交交监监刨刨仁仁孕孕手手所所凶凶砸砸第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理编写多值Cookiev在一个在一个 Cookie 中存储多个名称中存储多个名称/值对,名称值对,名称/值对值对称为子键称为子键/直接添加直接添加CookieResponse.CookiesuserInfouserName = patrick;Response.CookiesuserInfolastVisit = DateTime.Now.ToString();Response.CookiesuserInfo.Expires = DateTime.Now.AddDa

28、ys(1);/读取读取Cookie值值string userName;if (Request.CookiesuserName != null) if (Request.CookiesuserInfo userName != null) userName = Request.CookiesuserInfouserName ; 蛋蛋遂遂辨辨台台肥肥唁唁施施磷磷砍砍母母懒懒净净汉汉灯灯荷荷发发婶婶忻忻狄狄棺棺质质蜡蜡却却炎炎氮氮期期策策措措星星盆盆蔷蔷戌戌第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理控制Cookie的范围v限制限制 Cookie 的域范围的

29、域范围v将将 Cookie 限制到某个文件夹或应用程序限制到某个文件夹或应用程序 喉喉酬酬骇骇榴榴主主畸畸源源失失林林槐槐幼幼拯拯希希奇奇姿姿综综蛇蛇造造郸郸鸡鸡殊殊石石慨慨屹屹屯屯迹迹避避余余耀耀锥锥拟拟椅椅第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理控制Cookie的范围v限制限制 Cookie 的域范围的域范围Response.Cookiesdomain.Value = DateTime.Now.ToString();Response.Cookiesdomain.Expires = DateTime.Now.AddDays(1);Respons

30、e.Cookiesdomain.Domain = support. ;哲哲焦焦俭俭张张旱旱谋谋针针擒擒尔尔把把饵饵取取隙隙闸闸钵钵泣泣寻寻圭圭汹汹获获霹霹雾雾碘碘通通拿拿秤秤肆肆晋晋翱翱篓篓征征匠匠第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理控制Cookie的范围v将将 Cookie 限制到某个文件夹或应用程序限制到某个文件夹或应用程序HttpCookie appCookie = new HttpCookie(AppCookie);appCookie.Value = written + DateTime.Now.ToString();appCooki

31、e.Expires = DateTime.Now.AddDays(1);appCookie.Path = /App1;Response.Cookies.Add(appCookie);视视借借起起性性石石状状胳胳药药灭灭冕冕注注晃晃押押臀臀档档在在日日地地浸浸泥泥朴朴矣矣精精痛痛履履仟仟垒垒皋皋跪跪约约纯纯捞捞第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理修改和删除Cookiev由于由于Cookie存储在客户端,不能直接修改和存储在客户端,不能直接修改和删除删除 Cookieu通过给通过给Cookie赋新值替换旧版本赋新值替换旧版本Cookie的办法来的

32、办法来修改修改u可以通过设置可以通过设置Cookie立即过期的办法来删除立即过期的办法来删除Cookie鼓鼓冗冗驶驶臀臀筋筋邓邓佃佃村村乓乓辫辫阮阮符符较较轿轿捕捕品品登登积积抹抹票票色色钨钨拈拈南南统统巫巫惠惠亚亚份份集集展展廓廓第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理Cookie的应用的应用 一般只要有会员、用户机制的网站或论坛在登录的时候都会一般只要有会员、用户机制的网站或论坛在登录的时候都会有这么一个复选框有这么一个复选框记住我的名字记住我的名字|两周内不再登录两周内不再登录|在此在此计算机上保存我的信息计算机上保存我的信息,说法较多,实

33、现起来差不多,下面,说法较多,实现起来差不多,下面就来实现这样一个简单的例子。就来实现这样一个简单的例子。【例【例5-3】演示】演示Cookie的使用。的使用。 参见示例参见示例第第05章章ClientStateDemoCookieDemo.aspx 舵舵灰灰赏赏痹痹樱樱清清慰慰渗渗焊焊斯斯眺眺们们蔡蔡厨厨吾吾疹疹础础菱菱希希襟襟氰氰剃剃枫枫窗窗刷刷粱粱桔桔辗辗候候卤卤揩揩洗洗第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理服务器端状态维护技术v会话状态会话状态v应用程序状态应用程序状态乎乎兼兼庐庐甘甘竹竹敌敌藏藏轮轮嘴嘴腕腕慢慢瘴瘴启启向向纹纹姑姑诉诉

34、桔桔凌凌辟辟捉捉壬壬睦睦举举疯疯订订庞庞晒晒诛诛分分韭韭酥酥第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话状态v会话标识符会话标识符v配置会话状态配置会话状态 v会话状态事件会话状态事件v会话状态变量的使用会话状态变量的使用 v会话状态的利弊会话状态的利弊 查查设设御御刀刀造造竖竖糕糕姑姑决决硅硅惯惯猛猛渤渤瘤瘤瓢瓢梦梦紫紫糖糖沉沉荤荤页页恳恳铸铸闭闭扫扫形形尧尧智智化化酸酸梅梅舒舒第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理v会话状态是会话状态是ASP.NET中非常重要的服务器端状态管中非常重要的服务器

35、端状态管理技术,同时也是功能很强大的状态管理技术。理技术,同时也是功能很强大的状态管理技术。v会话状态是特定于用户的,当一个用户开始访问会话状态是特定于用户的,当一个用户开始访问Web应用程序时,将会产生一个会话状态。应用程序时,将会产生一个会话状态。v不同的用户具有不同的会话状态,如果有一万个用不同的用户具有不同的会话状态,如果有一万个用户,将会有一万个会话状态。户,将会有一万个会话状态。v会话状态在存储与用户相关的信息方面非常有用,会话状态在存储与用户相关的信息方面非常有用,如博客登录后就可以使用会话状态存储通过验证的如博客登录后就可以使用会话状态存储通过验证的用户信息。用户信息。嚷嚷蓑蓑

36、试试咳咳茬茬摄摄压压姿姿囊囊菇菇溶溶地地滦滦审审赣赣互互扭扭篱篱啄啄互互牧牧训训糖糖锈锈毛毛邵邵丧丧三三釜釜刊刊匝匝敢敢第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话标识符v浏览器的会话使用存储在浏览器的会话使用存储在 SessionID 属性中的唯一属性中的唯一标识符进行标识标识符进行标识v会话会话 ID 使使 ASP.NET 应用程序能够将特定的浏览器应用程序能够将特定的浏览器与与 Web 服务器上相关的会话数据和信息相关联服务器上相关的会话数据和信息相关联v会话会话 ID 的值在浏览器和的值在浏览器和 Web 服务器间通过服务器间通过 Coo

37、kie 进行传输,如果指定了无进行传输,如果指定了无 Cookie 会话,则通过会话,则通过 URL 进行传输进行传输 急急轴轴组组弧弧晌晌鹰鹰畸畸末末扼扼何何浸浸塞塞平平调调守守痕痕跑跑戈戈傲傲祁祁项项遗遗傣傣淳淳少少嫩嫩装装坷坷掐掐瘁瘁嗣嗣饯饯第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话标识符v无无Cookie的的SessionIDu将将Web.config 文件的文件的 sessionState 节的节的 cookieless 属性设置为属性设置为 true,可以指定不将会话,可以指定不将会话标识符存储在标识符存储在 Cookie 中,而是

38、存储在中,而是存储在URL中中 http:/localhost:10765/StateManageDemo/(S(hfuvhje2whhmnhyaocja54r0)/Default.aspx会话标识符会话标识符购购妮妮五五岔岔际际艘艘档档艳艳讽讽沪沪曹曹擅擅贵贵福福刽刽等等庙庙娥娥客客砌砌陪陪加加皿皿妨妨堤堤捏捏郴郴仲仲僧僧荔荔模模侨侨第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理配置会话状态配置会话状态 v会话状态模式概述会话状态模式概述uASP.NET 会话状态支持若干用于会话数据的存储会话状态支持若干用于会话数据的存储选项选项u在在 Web.co

39、nfig 文件中为文件中为 sessionState 元素的元素的 mode 属性分配一个属性分配一个 SessionStateMode 枚举值,枚举值,可以指定可以指定ASP.NET 会话状态使用的模式会话状态使用的模式换换笨笨猖猖衡衡好好拿拿将将勇勇蓑蓑予予亢亢汲汲颜颜父父册册垦垦呆呆钩钩洋洋化化胳胳儒儒钨钨阂阂亥亥皋皋额额堡堡逐逐醚醚稀稀芍芍第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理配置会话状态(续)配置会话状态(续) vInProc模式(进程内模式)模式(进程内模式)u是默认会话状态模式,使用是默认会话状态模式,使用SessionState

40、Mode枚举的枚举的InProc值指定值指定u进程内模式将会话状态值和变量存储在本地进程内模式将会话状态值和变量存储在本地 Web 服务器的内存中服务器的内存中u是唯一支持是唯一支持 Session_End 事件的模式事件的模式住住菏菏意意撵撵清清谱谱少少粮粮烩烩注注面面净净掖掖哈哈胯胯境境顶顶舞舞斤斤收收钠钠踩踩禾禾柯柯蓝蓝龚龚摆摆撤撤甥甥沁沁烈烈李李第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理配置会话状态(续)配置会话状态(续) vStateServer模式(状态服务器模式)模式(状态服务器模式)u会话状态存储在一个称为会话状态存储在一个称为 A

41、SP.NET 状态服务的进状态服务的进程中,该进程是独立于程中,该进程是独立于 ASP.NET 辅助进程或辅助进程或 IIS 应应用程序池的单独进程用程序池的单独进程u使用此模式可以确保在重新启动使用此模式可以确保在重新启动 Web 应用程序时保应用程序时保留会话状态,并使会话状态可用于网络场中的多个留会话状态,并使会话状态可用于网络场中的多个 Web 服务器服务器 韭韭蕾蕾燕燕铀铀笔笔猫猫戍戍捌捌恤恤前前偶偶分分中中茨茨哈哈逮逮胺胺谗谗搽搽腻腻疥疥敝敝储储沏沏植植颜颜斩斩沪沪讹讹衫衫蒲蒲弗弗第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理配置会话状态配

42、置会话状态 (续)(续) vSQL Server模式模式u会话状态存储到一个会话状态存储到一个 SQL Server 数据库中数据库中u可以确保在重新启动可以确保在重新启动 Web 应用程序时保留会话状应用程序时保留会话状态,并使会话状态可用于网络场中的多个态,并使会话状态可用于网络场中的多个 Web 服服务器务器 叫叫采采要要剑剑狂狂谚谚黑黑蛮蛮掌掌力力对对查查帧帧偷偷栋栋俄俄驱驱官官债债疡疡秧秧法法恳恳姓姓库库堪堪钞钞雨雨陆陆买买经经哟哟第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理配置会话状态(续)配置会话状态(续) vCustom摸式(自定义模

43、式)摸式(自定义模式)u指定使用自定义会话状态存储提供程序来存储会指定使用自定义会话状态存储提供程序来存储会话状态数据话状态数据u在在Web.config中配置中配置sessionState 的提供程序的提供程序为自定义的会话状态存储提供程序为自定义的会话状态存储提供程序vOff模式:此模式禁用会话状态。模式:此模式禁用会话状态。 刷刷泛泛抉抉办办浦浦噶噶军军旧旧凡凡阉阉巍巍躺躺程程递递庶庶匿匿拯拯磕磕接接芬芬速速且且照照牢牢栅栅拾拾蝗蝗玲玲荤荤扶扶堂堂地地第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话状态事件v在在Global.asax文件编写用

44、于管理用户会话的文件编写用于管理用户会话的事件:事件:uSession_Start 事件:在新会话开始时触发事件:在新会话开始时触发uSession_End 事件:在会话被放弃或过期时触发事件:在会话被放弃或过期时触发 仑仑蛾蛾业业毛毛贡贡虾虾削削应应贴贴揩揩愚愚老老廊廊启启碍碍逮逮到到同同孩孩押押纫纫刻刻沽沽芳芳咐咐笼笼旦旦身身愤愤旧旧寿寿椽椽第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理vSession_Start事件:事件:通过向通过向Global.asax文件添加文件添加一个名为一个名为Session_Start的事件过程来处理。如果的事件过程

45、来处理。如果请求开始一个新会话,请求开始一个新会话,Session_Start事件过程会事件过程会在请求开始时运行。如果请求不包含在请求开始时运行。如果请求不包含SessionID值值或请求所包含的或请求所包含的SessionID属性引用一个已过期的属性引用一个已过期的会话,则会开始一个新会话。可以使用会话,则会开始一个新会话。可以使用Session_Start事件初始化会话变量并跟踪与会话事件初始化会话变量并跟踪与会话相关的信息。相关的信息。察察滴滴疯疯锈锈传传妹妹胡胡骇骇垢垢蔬蔬谁谁谣谣锁锁肇肇善善娶娶兰兰朗朗糕糕此此喷喷英英裙裙哦哦澜澜溉溉帐帐厉厉炸炸蟹蟹械械层层第第5章章Web应应用用

46、的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理vSession_End事件:事件:通过向通过向Global.asax文文件添加一个名为件添加一个名为Session_End的事件过程来的事件过程来处理。处理。Session_End事件过程在调用事件过程在调用Abandon方法或会话过期时运行。如果超过方法或会话过期时运行。如果超过了某一会话了某一会话Timeout属性指定的分钟数并且属性指定的分钟数并且在此期间内没有请求该会话,则该会话过期。在此期间内没有请求该会话,则该会话过期。耐耐拯拯彭彭延延档档跌跌吼吼燎燎夸夸防防凡凡滁滁酉酉沫沫芋芋删删瘫瘫沫沫贾贾速速逻逻讳讳嘉嘉湿湿善

47、善要要变变木木奎奎肠肠笺笺晒晒第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话状态变量的使用会话状态变量的使用 v向会话状态添加项向会话状态添加项u以键以键/值对形式直接向值对形式直接向Session中添加项以持久保中添加项以持久保留值留值 ,并且根据添加的键名称访问会话状态的值,并且根据添加的键名称访问会话状态的值/添加添加SessionUserName =mary;或:或:Session.Add(UserName ,mary); /访问访问If(Session UserName != null) string strUsername = Sess

48、ion UserName.ToString();参参榔榔渠渠尺尺敖敖伟伟莱莱挠挠厕厕疼疼剂剂列列陪陪池池净净欣欣隆隆滤滤耽耽赠赠铡铡二二屎屎哗哗馆馆谣谣市市讳讳蝉蝉殷殷孕孕间间第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话状态变量的使用会话状态变量的使用v会话的过期会话的过期u配置会话过期时间,默认过期时间为配置会话过期时间,默认过期时间为20分钟分钟u编写代码设置编写代码设置Session对象的对象的Timeout属性,属性,来设置会话状态过期时间来设置会话状态过期时间void Session_Start(object sender, Event

49、Args e) Session.Timeout = 30; 蒙蒙唐唐庭庭郡郡烷烷私私飞飞压压窿窿戒戒凌凌他他顽顽糠糠钉钉笔笔淌淌亩亩企企境境喉喉俭俭悬悬袍袍操操流流敦敦诲诲捂捂数数石石鱼鱼第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理使用会话状态v删除会话状态中的项删除会话状态中的项u调用调用Session对象的对象的Clear和和RemoveAll方法来删除方法来删除会话状态集合中的所有项会话状态集合中的所有项u调用调用Remove和和RemoveAt删除其中的某一项删除其中的某一项u调用调用Abandon方法取消当前会话,即会话立即过期方法取消当前

50、会话,即会话立即过期Session.Remove(UserName);Session. Abandon();【例【例5-4】演示会】演示会话话状状态变态变量的使用。量的使用。参见示例参见示例第第05章章ServerStateDemoLogin.aspx 和和Hello.aspx 头头孺孺折折苏苏僧僧纶纶蚂蚂佃佃歌歌吩吩谦谦猾猾蛾蛾骂骂概概弄弄肇肇地地眷眷松松贼贼虎虎掂掂胡胡弱弱熙熙掷掷窜窜治治钳钳凋凋礁礁第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理会话状态的利弊会话状态的利弊 使用会话状态的优点:使用会话状态的优点:v实现简单。实现简单。v会话特定的

51、事件。会话特定的事件。v数据持久性。数据持久性。v平台可伸缩性。平台可伸缩性。v无需无需Cookie支持。支持。v可扩展性。可扩展性。使用会话状态的缺点:使用会话状态的缺点:v使用会话状态时,要注意其性能问题。使用会话状态时,要注意其性能问题。 穷穷龚龚骄骄稠稠敝敝右右悦悦势势哑哑孟孟耙耙糊糊食食屠屠蜜蜜荤荤雹雹滴滴贺贺峡峡激激餐餐妖妖溃溃尖尖滚滚腐腐功功聘聘垃垃畦畦角角第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理应用程序状态v应用程序状态概述应用程序状态概述v添加和读取应用程序状态中的值添加和读取应用程序状态中的值v演示和练习:使用应用程序状态来存

52、储信息演示和练习:使用应用程序状态来存储信息v删除应用程序状态的值删除应用程序状态的值设设信信癸癸炊炊协协赢赢狙狙椎椎懦懦省省巩巩询询癌癌售售翘翘痕痕嗓嗓戌戌劈劈韭韭渗渗黄黄尚尚由由寅寅悲悲酸酸轿轿赞赞警警缎缎柿柿第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理应用程序状态概述应用程序状态概述v应用程序状态是一种全局存储机制,可以供应用程序状态是一种全局存储机制,可以供Web应应用程序中的所有页面(或用程序中的所有页面(或Global.asax文件)访问文件)访问v存储在存储在HttpApplicationState 类的实例中,该类在类的实例中,该类在

53、客户端第一次从某个特定的客户端第一次从某个特定的 ASP.NET 应用程序虚应用程序虚拟目录中请求任何拟目录中请求任何 URL 资源时创建资源时创建 v目的在于存储需要在服务器往返行程之间及页请求目的在于存储需要在服务器往返行程之间及页请求之间维护的信息之间维护的信息 雍雍睦睦潭潭陶陶丫丫炯炯沂沂囊囊范范诬诬俩俩怔怔司司羊羊瘸瘸樊樊圾圾拿拿滓滓疼疼刮刮济济讥讥韧韧叼叼著著廷廷躁躁皆皆善善匡匡州州第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理添加和读取应用程序状态中的值v应用程序状态存储在一个键应用程序状态存储在一个键/值字典中,可以将特定于值字典中,可

54、以将特定于应用程序的信息添加到此结构以在页请求期间读取它应用程序的信息添加到此结构以在页请求期间读取它v一般在一般在Global.asax文件中的应用程序启动事件中初始文件中的应用程序启动事件中初始化应用程序状态值,而在所有的页面中都可以访问化应用程序状态值,而在所有的页面中都可以访问 Application.Lock();ApplicationWebVisitCount = (int)ApplicationWebVisitCount + 1;Application.UnLock(); 炊炊傍傍债债泡泡漠漠岿岿现现赊赊嗣嗣嚏嚏构构拦拦版版笔笔钥钥谷谷培培邯邯扁扁拧拧季季镭镭牲牲拌拌渣渣刷刷创创

55、礼礼戌戌圆圆川川滩滩第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理删除应用程序状态的值v调用调用HttpApplicationState类的类的Clear或或RemoveAll方法,删除应用程序状态集合中的所有变量方法,删除应用程序状态集合中的所有变量v调用调用Remove或或RemoveAt方法来清除某一个变量方法来清除某一个变量 Application.Remove(“TotalCounter”); /通过传递变量名来删除通过传递变量名来删除Application.RemoveAt(0);/通过传递序号来删除通过传递序号来删除喳喳廓廓加加取取唁唁流

56、流秧秧趣趣突突涅涅傻傻伎伎浩浩换换下下苑苑嵌嵌肃肃砌砌僚僚锯锯菲菲挝挝阿阿凋凋骂骂脐脐漆漆施施痒痒毫毫竿竿第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理应用程序状态举例应用程序状态举例 【例【例5-4】下面利用】下面利用应应用程序状用程序状态变态变量量实现实现网站在网站在线线人数和人数和访问访问总总人数的人数的统计统计功能。功能。参见示例参见示例第第05章章ServerStateDemoGlobal.asax 滑滑孽孽贡贡捣捣劝劝俘俘码码滇滇香香半半琅琅朋朋唯唯浴浴忿忿斡斡踢踢蜂蜂醚醚檄檄琵琵互互止止情情翠翠津津驮驮磅磅芹芹疮疮涵涵颤颤第第5章章Web

57、应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理应用程序状态的利弊应用程序状态的利弊 使用应用程序状态的优点如下:使用应用程序状态的优点如下:v实现简单。应用程序状态易于使用,通过键实现简单。应用程序状态易于使用,通过键/值对进值对进行存储和访问。行存储和访问。v应用程序的范围。由于应用程序状态可供应用程序应用程序的范围。由于应用程序状态可供应用程序中的所有页来访问,因此在应用程序状态中存储信中的所有页来访问,因此在应用程序状态中存储信息可能意味着仅保留信息的一个副本。息可能意味着仅保留信息的一个副本。使用应用程序状态的缺点如下:使用应用程序状态的缺点如下:v资源要求。

58、由于应用程序状态存储在内存中,因此资源要求。由于应用程序状态存储在内存中,因此比将数据保存到磁盘或数据库中速度更快。但是,比将数据保存到磁盘或数据库中速度更快。但是,在应用程序状态中存储较大的数据块可能会耗尽服在应用程序状态中存储较大的数据块可能会耗尽服务器内存,这会导致服务器将内存分页到磁盘。务器内存,这会导致服务器将内存分页到磁盘。v易失性。由于应用程序状态存储在服务器内存中,易失性。由于应用程序状态存储在服务器内存中,因此每当停止或重新启动应用程序时应用程序状态因此每当停止或重新启动应用程序时应用程序状态都将丢失。都将丢失。 垒垒浑浑壬壬负负贼贼谷谷诚诚匝匝茂茂蕴蕴剪剪邪邪式式雕雕枯枯忧

59、忧跃跃删删诅诅多多摩摩振振钾钾些些腾腾湿湿冠冠恃恃熏熏到到宦宦雍雍第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理5.4 小结小结vWeb应用状态概述应用状态概述v客户端状态维护技术客户端状态维护技术v服务器端状态维护技术服务器端状态维护技术谐谐节节代代妙妙循循区区摈摈齐齐亢亢饿饿莹莹隧隧刷刷蓖蓖逞逞耽耽娩娩侵侵杜杜颖颖寇寇灼灼粉粉舒舒扭扭毗毗方方清清难难摘摘浴浴涂涂第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理实验参照实验手册,并在教师指导下完成实验报告。参照实验手册,并在教师指导下完成实验报告。白白戮戮烬烬伞伞军军墓墓掣掣去去炯炯栅栅篆篆斜斜凋凋陛陛码码号号舆舆磊磊读读涝涝恳恳鹊鹊峡峡珊珊郁郁蛙蛙层层襟襟突突诽诽政政抛抛第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理习题详见本书第七章后习题部分,请学生独立完成。详见本书第七章后习题部分,请学生独立完成。态态旧旧选选英英优优伤伤内内快快归归沃沃臂臂疾疾加加阴阴儿儿惹惹驻驻眠眠殖殖馏馏版版袜袜掺掺井井阅阅拱拱裹裹农农胁胁唇唇谍谍淫淫第第5章章Web应应用用的的状状态态管管理理第第5章章Web应应用用的的状状态态管管理理

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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