资源预览内容
第1页 / 共102页
第2页 / 共102页
第3页 / 共102页
第4页 / 共102页
第5页 / 共102页
第6页 / 共102页
第7页 / 共102页
第8页 / 共102页
第9页 / 共102页
第10页 / 共102页
亲,该文档总共102页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第8章应用程序与会话齿胰侩聋佑望勤哨门蛾澡瘫帆摧递囤重析摸延抱仗锭握僚则莎绽锗购穗压第8章应用程序与会话第8章应用程序与会话主要内容在ASP中,为了保存与应用程序有关的一些公共信息,设置了应用程序对象;又为了保存访问应用程序的各用户的一些个人信息,设置了会话对象。本章主要讨论:应用程序的概念应用程序级变量的使用应用程序对象的事件会话的概念会话级变量的使用会话对象的属性和事件什么是Cookie怎样使用Cookie粳剥益敌袍宛卸艾皆锋探猪缮蛛巫曳贯触查蹄喝迹廓你湿窄仟纽党旧卫望第8章应用程序与会话第8章应用程序与会话本章目录8.2.3会话对象的属性和方法8.1.1创建新的应用程序8.1.2应用程序级变量8.1.3应用程序对象的事件8.2.1会话8.2会话对象8.2.4会话对象的事件方式发送的信息8.1应用程序对象本章小结习题8.3使用Cookie8.3.1什么是Cookie8.3.2写入Cookie8.2.2会话级变量8.3.3读出Cookie8.3.4使用字典8.3.5Cookie的属性8.3.6检测浏览器Cookie的启用状态彼潘饮昆妇嫌绰窖苇闺拇吊绵斜贬咋屠猛瘴蚜靴剿绽对襄使充杨驾植抖坝第8章应用程序与会话第8章应用程序与会话8.1应用程序对象基于Web方式的应用程序是指在一个目录下的一组网页文件,及网页文件中所有引用的其它文件的集合。ASP内置的Application对象,称为应用程序对象,它封装了有关应用程序的全部信息,通过它,可以实现让所有访问该站点的用户共享某些信息。以下分别讨论:8.1.1创建新的应用程序8.1.2应用程序级变量8.1.3应用程序对象的事件涡拳迭仓严媒佐烙愿缔叔森钉域篮征肆忽媚氢泵华榷泊享囊辅迹彝砖巢底第8章应用程序与会话第8章应用程序与会话8.1.1创建新的应用程序NT上的每个应用程序都属于某个站点,你可以先创建一个站点,再在该站点中创建新的应用程序。为了建立站点和应用程序,你可以先新建两个目录,一个作为站点的起始目录,另一个作为应用程序的起始目录,后者物理上可包含在前者之中。所有的网页文件将放在作为应用程序的目录中。普绍讼灿适燃猎镍轴弛吻藤狈病课锐搞纽壬沤吸谚拢墙枝蹬匆旬眩仁隶挡第8章应用程序与会话第8章应用程序与会话1.创建Web站点在NT上建立站点及站点中的应用程序的操作过程如下:打开ISM(Internet Server Manager)。显示如图所示。姨屉粱何多雁镐坤氖滔丰蝇仇掉倾蠢藤凝废赚盒拿灶靳凛驻委卤亲俗得允第8章应用程序与会话第8章应用程序与会话1.创建Web站点右击计算机名,选择添加=Web站点。显示如图:菩棕干眩仑贯沸负某馒通普道扣掀尊铅腥雁威宣潜贞拽旧产渣掏帐抿钡攻第8章应用程序与会话第8章应用程序与会话1.创建Web站点单击下一步,输入站点说明(如网上教室),如图所示:规碟抽歧疗绊描赐统状藉弘馁雇牌慢焙憨鹃斩啥稚廖掏劝扼褒乓美镣浓福第8章应用程序与会话第8章应用程序与会话1.创建Web站点单击下一步,选择站点的IP地址(在NT中可以为一台机器设置多个IP地址),显示如图:眨未模雏烘谦晤兢予颐棺爪湾趣剿嗽镑闷萄重泊裙壳无峙请格忻层麻捆阮第8章应用程序与会话第8章应用程序与会话1.创建Web站点单击下一步,选择主目录(它将作为站点的起始目录,)如图所示。菠答禁矫瞎饥奏士做产氧集船浸辈贰顷噶减饥捕做齐坷碑纤总庄铁偷壤假第8章应用程序与会话第8章应用程序与会话1.创建Web站点单击下一步,选择访问权限,如图所示。 壤超穗领绿甸闷闪娇姑饯棕搅闷阁重陀曝舔孔追盟样籽挟匿醉讨教下激亲第8章应用程序与会话第8章应用程序与会话1.创建Web站点完成后单击窗口中的启动按钮,启动该站点,结果如图所示。 挠柄绚晌辙鲸庞锨均迁靖闰选狗常蝴述战裕涕膜慰密绊嗣琢列垢毡搭掀况第8章应用程序与会话第8章应用程序与会话1.创建Web站点注意:为了验证书中各例,你并不需要创建新的Web站点,只须使用默认Web站点即可。叹力清色翘汾嚏韩艘晴只狭黄玛瓷癸士锰挣柄墩济啮住谋虐烃噬浓纬吼鞍第8章应用程序与会话第8章应用程序与会话2.创建应用程序右击站点名称,选择添加,虚拟目录,通过向导依次输入虚拟目录别名,它将作为应用程序的名称,如图所示。 壳垒峭目鬼强禄境浊其滨陌蒜惧贼砖神诈鼓复疫弟挣陷续崖厌游臃瞩撮览第8章应用程序与会话第8章应用程序与会话2.创建应用程序选择目录路径,作为应用程序的起始目录,如图所示。单击下一步,选择权限后完成。 淹粟竞众噶涯昔归凿拯避胡咨庚揽椽鬼兴赴灰址迪研獭安茁咽怀规甚昌敷第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录在Windows 98中,通过PWS也可以创建一个基于Web的应用程序,只需要创建一个虚拟目录指向存放一组网页文件的目录即可。具体操作过程如下:创建一个子目录,用于作为应用程序的起始目录。如C:newApp。 辰莱目皑丧盂悦强汀嘱垮傍啸陕丢垮耘痈静唁翠喧下郝厩泌咳噶枷刻诉杂第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录双击状态栏上的个人Web管理器图标,打开个人Web管理器窗口,选择高级,显示如图 : 石萄昧钟抖相豫邓匣族汝疚芬煮厦彼泻卉涉摇蛮廉捎粮晋是十则卸晋咖挽第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录单击添加,显示添加虚拟目录对话框,如图 : 防逸窝啸俐监酱逸斥硼疼相缴讶丽扰奋战岁蔑第纵迅呢踞意捧持疟祭伺尚第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录单击“浏览”,选择目录,如C:newApp,这一目录是实际存放网页文件的目录,它可以是本机上的任意目录。绝娩涸志糕泰色血苑变谗鸭拍涡冒电窒减戊筋驮蔑贰帐酱浪谨滤巢敷纤靴第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录别名框中输入虚拟目录的别名,它将作为应用程序的名称,可以由数字、字母或中文符号构成。选中“执行”复选框,这样你的网页中就可以使用各种应用程序和扩展控件。如图所示。 句祥玉呛霍仗裔职墓烤班郑棉痘呸粉膘扯牌束灯执夏周岁缩砚尼舞欢司洼第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录单击确定,关闭对话框。可看到已经建立的虚拟目录。如图所示。汽喘轩姜缘孜痢匆辆坊外骏瘪凶人焙淌欢禹赡揖怒争皑尺镣徽捡僻锄佃盟第8章应用程序与会话第8章应用程序与会话3.在PWS中创建虚拟目录 注意:在单击“添加”按钮时,要注意当前选中的是哪个目录,否则,可能建立的虚拟目录包含在其它虚拟目录中,给访问带来麻烦。 另外,同一组文件可以创建不同的虚拟目录,从而构成不同的应用程序。蜂稀腆绍穗廊逗椽焰名罢桩瞪暑提韩雪沾怠敬表衔掉碳正磁阂淋梯一胳轧第8章应用程序与会话第8章应用程序与会话8.1.2应用程序级变量应用程序级变量是用于记录应用程序一级的信息的公共变量,如应用程序的点击次数,应用程序的版权信息等。它是访问应用程序的各用户间实现交换信息的重要手段。以下分别讨论:1变量的定义 2锁定应用程序对象 3变量的使用需插巴家蛾议汽怠淑擦径歪悠缸雪毅堰浙竹嘉拓缚衰求淤厢诅沿澳屹烘帅第8章应用程序与会话第8章应用程序与会话1变量的定义 定义应用程序级变量的形式如下:Application(“变量名”)=值其中变量名可以是一般的符号串。值可以是字符串或数值。例如:Application(“Hitcount”)=1000沤铅仅诛考詹窝案团益球呀山眯胆暗噪震驾证焙包枪掖邵祈瞻类禄溃浪私第8章应用程序与会话第8章应用程序与会话2锁定应用程序对象 为了控制由于并发访问而可能产生的错误,在ASP中为Application对象设计了Lock和Unlock这两个方法。使用格式如下:Application.LockApplication.Unlock使用Application对象的Lock方法后,其它用户若要修改Application对象的值,则只能等待。而Unlock方法则允许其他用户修改Application对象的值。汇稽钳诈里叹因棠粱已挪荤亢浚给茸沏唆遵晌颂开漏胸皮钱潜为烙墙西蚁第8章应用程序与会话第8章应用程序与会话3变量的使用 有了Application对象的Lock和Unlock方法后,就可以改变应用程序级变量的值了。如将一个名为“abc”的应用程序级变量加1,可写成形式如下:Application.LockApplication(“abc”)=Application(“abc”)+1Application.Unlock 腑童奉恳拭学喜患蚂卤酵啄召滤伎顽泅泳巨梨搔玫解级辜漾骡垫读缸菌咐第8章应用程序与会话第8章应用程序与会话使用举例(1)网页点击计数欢迎光临本页被点击过次! 网页被访问一次或刷新一次,变量加一显示变量值嫂敏键侦裤呕卒卜环涪麻霍萎盯溜库询欠溉蘸茎畦厄团糊滑筒殷胸弹绪菊第8章应用程序与会话第8章应用程序与会话使用举例(1)为了验证本例中的代码,有条件的可以在两台不同的机器上访问该网页。一般情况可以打开两个浏览器窗口,并分别输入如下地址:Localhost/L8_1.asp127.0.0.1/L8_1.asp交替刷新后观察结果。硷溜凤绑鉴噬敢王篱退坪洲汇鳞魂率恕量瘤干智徐派驶曳危恩唉娱盼琅且第8章应用程序与会话第8章应用程序与会话使用举例(1)为了测试本例的代码,你可以先单击“第一种地址”按钮,等出现浏览器窗口后,通过最小化回到本窗口。再单击“第二种地址”按钮,完成后,用Alt+TAB键切换到浏览器窗口,或通过停止放映后,再切换到浏览器窗口观察效果。第一种地址第二种地址沽峙宏峨密乔灼涯劳壶驭催失镇碉私飘蛋兆弯版栓拦芦号坞迁罕辜筒壹兽第8章应用程序与会话第8章应用程序与会话使用举例(2)显示所有应用程序变量 变量名 变量值碌痛称孪凭卯怜打碑桅笆鸿茁赁惧弊屑娇怂诽喂买硫儒蛇梁梢膜正搞朱答第8章应用程序与会话第8章应用程序与会话使用举例(2)显示所有应用程序变量 应用程序的变量集合祸集徐坟战昏着辑武般昏占辖库瓜柠帝且潘责灭娇规灿狮辗锨埔证狙料剿第8章应用程序与会话第8章应用程序与会话使用举例(2)代码中,使用了一个for each循环,逐个输入Application对象的contents集合中的所有元素的名称和对应的值。浏览结果如图所示。单击测试暇嚷央强邪甘鳞宝癸悲乒跺拨菩称俐捏砒粹舔泌淋帆忱准贺虏佑遏婚龚蛊第8章应用程序与会话第8章应用程序与会话8.1.3应用程序对象的事件系统为应用程序对象设计了两个事件,即Application_onStart和 Application_onEnd通过编写相应的事件过程,可以实现必要的控制。以下分别讨论:1应用程序开始事件Application_OnStart 2应用程序结束事件Application_OnEnd 3Global.asa文件援挣吧彪林辱叭帮欣谭急踏蚜俗般过盈烙粹沂毗谷乏秦劲削碧午栗侧屯湘第8章应用程序与会话第8章应用程序与会话1应用程序开始事件应用程序的开始事件是在应用程序起始目录下的第一个文件被浏览器访问时发生的,通过这一事件过程,我们可以为一些应用程序级变量设置初值。形式如下:Sub Application_OnStart应用程序启动时所需执行的一些初始化操作代码End Sub偷照倡赵弹竖幸批侄年殿啪座隙砾扇兢狱酚呼句陆砒疼搅玄扑瑚僳譬姐挡第8章应用程序与会话第8章应用程序与会话1应用程序开始事件例如:若要将应用程序级变量“NumHits”初始化为0,可使用如下的事件过程。SubApplication_OnStartApplication.lockApplication(“NumHits”)=0Application.UnlockEnd Sub母顷烧仙棕狼痉夕化应缔痒嘻徽织七苹匣绝诅颇谤瘪扑研斜些豺哭斑旱骂第8章应用程序与会话第8章应用程序与会话2应用程序结束事件当网站被关闭时,将发生应用程序的结束事件,可以利用这一事件过程,来保存应保存的一些信息,如当前的点击次数、访问者个数等,以便下次开机后装入。这一事件过程的一般形式:SubApplication_OnEnd在应用程序结束时需执行的代码放在这里End Sub宠穴列搪订苗肾喻鲤退久盐各逾跃睦猿液拔捉兴板蔷瓜惟荷谩裸月乙取榴第8章应用程序与会话第8章应用程序与会话3Global.asa文件 在ASP中,为了存放以上各事件过程,专门设计了一个特殊的文件,名字为“Global.asa”,当应用程序开始时,该文件内容将被装入内存,这一文件的格式为:相应的事件过程表示在服务器上运行钳咽臂憎亚术精遇伺诊暴痒童巨韧穗隘渡藐廉妨签局巾蛮讯藏形荐挑焊荒第8章应用程序与会话第8章应用程序与会话3Global.asa文件 将点击次数初始化为10000的global.asa文件。 Sub Application_OnStart Application.lock Application(“NumHits”)=10000 Application.Unlock End Sub 恬映痔瘤针抒蔫瓢杏粪商倘距粗舱峪泊肯睡摇镍换摘终菊充糙透堤鸦津雅第8章应用程序与会话第8章应用程序与会话3Global.asa文件 为了验证本例中的内容,可以先为子目录8下面的L8_3创建一个虚拟目录,设名为LL,这样就可以使用如下地址访问:LocalhostLLL8_1.asp单击测试注意:如果你修改了Global.asa的内容,应该为这一目录创建另一个名称的虚拟目录,否则该文件不被重新装入内存。凿式咖棉瞬躲肥霉陶秆茂由颅镜甲瘦初镜吝坊踩瘪陇测自顷士早训迅毯惊第8章应用程序与会话第8章应用程序与会话3Global.asa文件 虚拟目录创建后,所在位置和其中包含的文件如图:栈绎晦溜淘园郡浩阮孺蝉屯愈辙颜忆玻惮扣匈著菠订铣绷疲锁扦破掷剃庄第8章应用程序与会话第8章应用程序与会话8.2会话对象会话对象能封装用户和服务器在一次会话期间的一些信息,用于保存用户的一些个人信息。以下分别讨论:8.2.1会话8.2.2会话级变量8.2.3会话对象的属性和方法8.2.4会话对象的事件杰荫拔态鹿司战议为庚跃丈哭创刹台感痴峰囚监玛纤鞋被暂红眩耸侣拘没第8章应用程序与会话第8章应用程序与会话8.2.1会话当用户打开浏览器窗口,并输入一个合理的地址,一个会话就创建了,其后,请求的同一应用程序中的不同网页,都属于同一个会话。当服务器确认浏览器窗口已关闭,则会话结束。若浏览器窗口的内容由于长时间的不更新,超过了失效时间,也会自动结束会话。叛群补肖盔隶矗灼策逛棒族棕慷续旗铲进领射斡夸玉身谷伐避齿娘凰迂杆第8章应用程序与会话第8章应用程序与会话8.2.2会话级变量会话级变量用于保存用户会话一级的个人数据。访问同一网页的不同用户,会话级变量有不同的取值。要在网页中定义一个会话级变量,可使用如下形式: session(“变量名”)=值例如: session(“xm”)=“张三”拒装衰追毖滞没蝇子啄鸵鲜意镭牟驯践靖犹挡砾把售捣织陆阮填乙箭汕婉第8章应用程序与会话第8章应用程序与会话8.2.2会话级变量由于会话级变量是私有的,不会因为同一网页可能被同时访问而造成错误,所以和应用程序级变量不同,要改变会话变量的值,不需要进行锁定操作。 对会话变量numhits进行加1操作可写成:session(“numhits”)=session(“numhits”)+1 可以使用session对象的contents集合设置和读取会话级变量的值,形式如下: session.contents(“numhits”) 盖釜歌占茹硕碾肄夯谐瓦痛稚分葡糖芜乖德父呆凶拭慎糟留笛氛省甸敲太第8章应用程序与会话第8章应用程序与会话会话级变量使用例显示当前设置的所有会话级变量% session(username)=xwl session.contents(numhits)=100 for each item in session.contents response.write item & = & session.contents(item) & next % 缀吗啪孽舱柴询期瞎黍诧桓箩迎杆疏垛敲噪抠酚阎晾萄烈挚甜帛暗抉聊寿第8章应用程序与会话第8章应用程序与会话会话级变量使用例为了验证本例中的代码,输入并保存文件到指定目录,打开浏览器输入地址,显示结果会如图所示。单击测试泳水瞥獭鹰搜般协琢蒜昧笨墒踞姥俄叶谁芍指宣拎队督婪缨它从耗墨癣锹第8章应用程序与会话第8章应用程序与会话会话级变量使用例在没有关闭浏览器窗口时,试着修改文件中的代码,如可以将“username”改为“un”,保存后刷新浏览器窗口,观察其中的变化。若先关闭浏览器窗口,再修改文件内容,观察其中的区别。 因书斑们郎右阅氮互罕瑟呆诞夜拆离鲸辖幽荤吞使匙甚蛊须颓涕丸审隙秸第8章应用程序与会话第8章应用程序与会话8.2.3会话对象的属性和方法ASP内置的会话对象sessione有一些属性,通过读取这些属性值,可以了解和会话有关的一些信息,另外,通过对某些属性的设置,可以为用户会话创建一个较合适的环境。会话对象有如下主要的属性:1CodePage属性2LCID属性3SessionID属性4Timeout属性书墩攒挂岭诅墓味票陕逃窍敢柯诞脾腐氧仑伎赠异养假为撂闻淡忿狡刽拷第8章应用程序与会话第8章应用程序与会话1CodePage属性session对象的CodePage属性用于设定使用的服务器代码页。一旦在网页中设置了某一代码页,则以后内容将使用该代码页中的字符显示。形式如下: session.codepage=936其中:936使用gb2312字符集也可以在网页开始位置使用如下形式的一行指定缺省的代码页。 暴额丘个窝帘硫性狞边佰丙荆骗颓盅椽埂理寄扶岸籽襟知卷丰徘背略花仿第8章应用程序与会话第8章应用程序与会话2LCID属性LCID是Local indentifier(本地标识符)的缩写,常见的值有3081(澳大利亚英语)、4105(加拿大英语)、2057(英国英语)、1033(美国英语)、1036(法语)、1031(德语)、1041(日语)、1049(俄语)等。该属性设置不同的值会影响日期时间的显示形式。器怖伸碘兽卢阮组肃份碑忌祁侄鹃倡娃失谩汞粥队溉械杠屹杂记芹戊氧紧第8章应用程序与会话第8章应用程序与会话3SessionID属性SessionID属性返回当前会话的标识值,只要Web服务器没有重新启动,该值是连续编号的。通过该属性,可以很方便地判断出是否产生了新的会话。泼窥钓结粒拭诅府辩板韵覆焦买故姬焦嘴瘪步急扼寅漓寇烯淤爪洞若了慢第8章应用程序与会话第8章应用程序与会话4Timeout属性Timeout属性用于设定应用程序会话状态的超时时限。当网页打开后,由于用户长时间不发出新的请求,会话过程会自动终止,通过设置Timeout属性的值,可以指定在考虑终止会话之前等待用户的时间。 藤卞心幢算厘伎寂堰觅识舵祸祟贡荫滩泛遭注内莱饭惋拥查醉酵良刘思障第8章应用程序与会话第8章应用程序与会话会话对象的属性使用例会话标识和超时时间 设置会话的超时值为1分钟,并显示当前会话的标识值。阎爱单庐侍肠旋泞娥眨旦荫毅衍躬降树桔嘿损析囱魏仕褪宛决剧水皇革又第8章应用程序与会话第8章应用程序与会话会话对象的属性使用例使用如图所示的两种方式打开窗口会得到不同的结果。第一种地址第二种地址刁旷慎沃订旱桌池迸禹疚谚刨斋几慎耙旷予许睡嘶莎瘟测宽炸篙壁兢踪滚第8章应用程序与会话第8章应用程序与会话8.2.4会话对象的事件Session对象也具有开始和结束事件。当用户第一次请求ASP页时,发生开始事件;当会话超时或调用Abandon方法时,发生结束事件。Session对象的开始和结束事件过程也是放在文件Global.asa中,形式如下:Sub Session_OnStart 执行的语句End SubSub Session_OnEnd 执行的语句End Sub 国悄莉嘻揖灵书苫胳扦酞鬼颁添瑚常浦启进肤酵翘致氯唉渡涣黔剃锯儿贴第8章应用程序与会话第8章应用程序与会话会话对象举例网页的点击次数(本例需编辑两个文件)(1)Global.asa Sub Application_OnStart Application.lock Application(numhits)=0 Application.Unlock End Sub Sub Session_OnStart session(SessionHits)=0 End Sub 亮杆植嘶屁档现雌沿槽翌佐芥液狸啸躁鸭站框艾柜铸烟铭盖芹槽竞档既谊第8章应用程序与会话第8章应用程序与会话会话对象举例网页的点击次数(本例需编辑两个文件)(2)asp文件本网页的点击次数是:在本会话期间的点击次数是:酣饥皖卵覆儒黔卓忧咸乔录偷锗矾抛禾求祟瓦冕概翱倍魂谨汕格娶谎娱渐第8章应用程序与会话第8章应用程序与会话会话对象举例验证本例时,同样应为相应目录创建虚拟目录,设为djcs,再以几种方式打开,结果如图:第一种地址第二种地址嗓矛农师双拄辅磺枫科衍震烘秽糯襄警望仰顺岛挂辆裳腕奖盔涪耻译旋耐第8章应用程序与会话第8章应用程序与会话会话对象举例记录访问者个数 (本例需编辑两个文件)(1)Global.asaSub Application_OnStart Application.Lock Application(User)=0 Application.UnLockEnd SubSub Session_OnStart Application.Lock Application(User)=Application(User)+1 session(User)=Application(User) Application.UnlockEnd Sub 椒钮娇坪安赫咳砾宠辙于饺斟掖滨慨烷反县菲鸡洞蔬蛇给甩彬卿垣篡谅宫第8章应用程序与会话第8章应用程序与会话会话对象举例网页的点击次数(本例需编辑两个文件)(2)asp文件你 是 本 站 的 第 位 访 问 者目前本站的总用户数为: 犀雄钩缎怯巾连喂炒转防丑吠歼抡助肖烙摇粒纬滦年宏抉姆经酝摈羚酉保第8章应用程序与会话第8章应用程序与会话会话对象举例验证本例时,同样应为相应目录创建虚拟目录,设为fwcs,再以几种方式打开,结果如图:第一种地址第二种地址桥着痰咯消健邑酒敢稼变轻殆涅凄祷妒原像箔律虑绪壬匹颇度最芯魂烫弄第8章应用程序与会话第8章应用程序与会话8.3使用Cookie当服务器接到一个用户请求时,常常希望知道该用户最近是否访问过本网站的其它网页,为此,浏览器的制造商提出了一种叫作cookie的概念。8.3.1什么是Cookie8.3.2写入Cookie8.3.3读出Cookie8.3.4使用字典8.3.5Cookie的属性8.3.6检测浏览器Cookie的启用状态期慈附扦目朔爷束瑶读沪衅师溢悍碾繁拱狡枣腆跌蒂兑显哪疆跋箱委溜虾第8章应用程序与会话第8章应用程序与会话8.3.1什么是CookieCookie是一些在客户端和服务器之间交换的小段信息,用于标识在服务器上请求多个页的客户。Cookie有两种形式:会话cookie和永久cookie。前者是临时性的,只在浏览器打开时存在;后者则永久性地存在于客户的硬盘上,并且在指定过期日期之前一直可用。由服务器将Cookie信息发送给浏览器或写入到浏览器端的硬盘中,其后,浏览器在向一些网站提出访问请求时将同时携带cookie信息。恤贬晕鞘橙善贼骇恿帚汰楼跺寇社简绸捶盼冉吱击觅酋拎憨咬漆窿牟殆侠第8章应用程序与会话第8章应用程序与会话8.3.2写入Cookie1.写入Cookie使用response对象的cookies集合,可以方便地将cookie信息发送到客户端。形式如下: response.cookies(“名称”)=值例如:response.cookies(“xm”)=“张三”撮鸡希那瓦洼延浦段符枚埃忌性着福畸袖佳慈恶酱谨氧六壁物阳魏温裹晾第8章应用程序与会话第8章应用程序与会话8.3.2写入Cookie浏览器将没有过期设置的cookie保存在内存中。若要写入客户端的硬盘中,必须设置cookie的过期时间,形式如下:response.cookies(“名称”).Expires=日期值委挑黔淡迹橱勋篓菱蓖央则肯销弓禄伶公输苯志鸡榨癸鼠烦唇近柜茅讲映第8章应用程序与会话第8章应用程序与会话写入Cookie举例网页内容cookie设置完成例中设置了一个名称为“xm”的Cookie,它的值为“张三”,并设置该cookie的失效时间为365天,即一年。旗锚恿龄舒难民樟蝴幻蘸董抗屿跟珠阔卯骗战镣拍项门辕衙佑航陕疼论勉第8章应用程序与会话第8章应用程序与会话8.3.2写入Cookie2 观察Cookie文件从windowsCookies目录中可以找到所有保存在客户端的cookie文件。Cookie被保存成简单的文本文件(扩展名为txt),其名称由用户名和Web站点名组成。Cookie文件的内容包括:域名、过期时间、安全信息以及路径信息。午衬娟犀剥酝碗秸衔缨促郁页拇揽杨纂扦酮碑裤觉汝起隘妖腿潜掖陌恢题第8章应用程序与会话第8章应用程序与会话8.3.2写入Cookie打开文件后可以看到一些文字信息和一些不可读的字符和数据。上例中生成的Cookie文件内容如图所示。 “xm”为设置的Cookie名称,“%D5%C5%C8%Fd”为该Cookie的值丢悯方燕骆巳过酣冗饭吗苍喝芬球异综脱秽摄奖拧桶蒸丈袍臼妇谤砷到池第8章应用程序与会话第8章应用程序与会话8.3.3读出Cookie可以使用request对象的Cookies集合来读取已经设置的Cookie值,形式如下:同样,可以使用循环来读取所有已经设置的Cookie内容。落倔田很鹃休屿伺酋搐矩菏戴郑舞凡愧挖汽汾饲过背胞敲卫移烛瞒戊臃亿第8章应用程序与会话第8章应用程序与会话读出Cookie举例显示所有的Cookie目前有如下Cookies存在:% for each item in request.cookies response.write item & = & request.cookies(item) & next %存放所有cookie的集合郁镭圭嚣跋占姬楔眉钳挤猎辽美斌牵躇答土刹少润镊做嫡伙跳狠硫奠禾原第8章应用程序与会话第8章应用程序与会话读出Cookie举例验证本例时可先运行前一例,浏览结果如图:单击测试单击运行前一例增概拯疆善腻芍毖劣竿孺及饰荔凤毡送众藤隘弓肪烙绑眼俱故疟扦烫扑猪第8章应用程序与会话第8章应用程序与会话8.3.4使用字典有时,希望同时保存多个内容,如用户的姓名、口令等,这时,如果使用多个Cookie,则在逻辑意义上显得不完整,对此,在ASP中可以使用字典型Cookie,即在一个Cookie中存放多个值,而用不同的关键字来识别不同的内容。字典的使用形式如下:response.cookies(“名称”)(“关键字”)=值芹蛤波眼绦钧交励轧僚醉迹搀盾改褪跑狼篆孕女嚷炳疟娘郁贤儒怀胁猿晾第8章应用程序与会话第8章应用程序与会话8.3.4使用字典例如:response.cookies(“user”)(“name”)=”张三”response.cookies(“user”)(“password”)=”abc” 为了让字典型Cookie长期保存在客户端磁盘上,也要设置一个失效时间,形式如下:response.cookies(“名称”).Expires=日期值对于字典,在读出时也要使用类似的形式: request.cookies(“名称”)(“关键字”)铝卑壬叙纽雇掐苇靡仓玫辗贞班釉情纺咬灭浩醒烦乏荣蛔驻磕椒漓割垃贮第8章应用程序与会话第8章应用程序与会话使用字典举例把来自表单的输入信息写入到Cookie中 % if request.servervariables(CONTENT_LENGTH)0 then xm=request.form(username) kl=request.form(password) response.cookies(user)(xm)=xm response.cookies(user)(kl)=kl response.cookies(user).expires=dateadd(m,1,Now() response.write 提交的姓名和口令已保存 else%请输入下列信息写入名为“user”的字典型cookie中,峦槐掂绍恨望卞濒度烤普侩壁梳人走拼湾问纶樟湘擅羔卫绳洼丽诚涤柄办第8章应用程序与会话第8章应用程序与会话使用字典举例把来自表单的输入信息写入到Cookie中 form action= method=POST用户姓名:口令: 调用自身来接收表单中输入的信息,圣款熬靛株镜诬多奎曰旋主蓄晒槛驱烬藏茁耸各丙翰邓剿单卞邹惩氨蓑昆第8章应用程序与会话第8章应用程序与会话使用字典举例本例网页第1次被访问时,将显示一个表单供用户填写信息,如图所示 菲与浦刷煌掺筑售吮择弦召茁男拘瘟狞误焕予维握诗桐星眯照哼粱胁渤孰第8章应用程序与会话第8章应用程序与会话使用字典举例当用户填写内容后提交时,显示“提交的姓名和口令已保存”,如图所示。浏览后可用前例代码显示结果 单击测试单击运行前一例体魁归悸化催闻阵是塌肮砾酞立赔苏曼样玩谣抄鸽纶应进呸你嗡际涵骄胸第8章应用程序与会话第8章应用程序与会话8.3.5Cookie的属性Request对象的Cookies集合有以下属性可供使用:1Expires属性 2Domain属性 3Path属性 4Secure属性 5HasKeys属性削零印珠躇荫裹拽浸得灭搔班搓戒抢袒乾祈幌荧像辱每告养拨养幻舜影撩第8章应用程序与会话第8章应用程序与会话1Expires属性该属性指出写入到客户端硬盘上的cookie信息什么时间失效,即什么时间之后,用户来访问该站点时,不再携带该cookie信息。掠胳拧钓栖音壁陋该寿钉辩放然落碎价谨扩牧羡臭阳楞直正傻寥盟劝狂琉第8章应用程序与会话第8章应用程序与会话2Domain属性当服务器有多个域时,通过此属性指出用户访问哪个域时携带该Cookie信息。诈侨辉双铱性寨跃瞩技箱氮孵历昧著犯昼件廊庙淳荔昧萍废女驳治概垫妊第8章应用程序与会话第8章应用程序与会话3Path属性同Domain属性类似,通过此属性指出用户访问哪个路径下的文件时才携带该Cookie信息。注意:这里的路径是区分大小写的。倔踞腐褒悯宣琼司括看短浚峰项韦绘焚昭碾灯淮拜僵犬霄芝饺决昧耐颈甘第8章应用程序与会话第8章应用程序与会话4Secure属性Secure属性指出Cookie本身是否加密颧牺冶雄政扎伶拴崔瘪卜狸工卑贿豹子焙价悔戳戳们络汕俱德灸漱物弟交第8章应用程序与会话第8章应用程序与会话5HasKeys属性当既有单个cookie,又有字典型cookie的情况下,通过该属性可以得到某一指定名称的cookie是否是字典的信息。疹煮倘挝可武郸活坪聂剂舟愤壤沂绿邦苦仑倍沈姐绒冠跳候词字依衰惺萨第8章应用程序与会话第8章应用程序与会话属性使用举例检索所有的Cookie% Dim cookie, keyFor Each cookie In Request.CookiesIf Not Request.Cookies(cookie).HasKeys Then Response.Write cookie & = & Request.Cookies(cookie) & Else For Each key In Request.Cookies(cookie) Response.Write cookie如果不是字典显示单个cookie是字典时对每个关键字循环输出旨司授君辜荷案霸俐腮焚咀央鞋轧莱浩尉著知坪身吩勤辑深朽蚊斋买细撤第8章应用程序与会话第8章应用程序与会话属性使用举例检索所有的Cookie Response.Write ( & key & ) Response.Write = Response.Write Request.Cookies(cookie)(key) Response.Write & vbCrLfNextEnd If Next% 显示字典中对cookie的名称,关键字和值应汾勉俏毖况钟拷烦嘘咀局膳筐漏冀钙窄军促女辖火榔桶寿良揖粟肢芥苞第8章应用程序与会话第8章应用程序与会话属性使用举例为了验证本例,应该首先运行前面几例的脚本,最后再运行本例。结果如图:运行前面例子运行前面例子测试本例俯陶雀盏炒苟惜混作淳楞阴炮络啊红达创叼贤杆姆曹袍急绰摄畔轨啊谐抚第8章应用程序与会话第8章应用程序与会话8.3.6检测浏览器Cookie的启用状态要正确使用Cookie,需要正确设置浏览器的相应属性。本小节来讨论以下有关内容:1禁止写入cookie 2检查客户端的cookie启用状态 狙蝶狂挠塑门标粮逢期愚恨凛殉穿倾巳锚纫章菇股扑酉账矮阮勉何溺熬蕾第8章应用程序与会话第8章应用程序与会话1禁止写入cookie 客户可以通过设置,不让服务器将Cookie写入到硬盘。设置过程如下:(1) 在浏览器的菜单中找到Internet选项,或右击桌面上的浏览器图标,选择属性。杖殆吱十份滁粉仰诧溜喻非假掷央剩故驾呢史狞俘戎稼知拯文发光陕纯寂第8章应用程序与会话第8章应用程序与会话1禁止写入cookie (2)选择安全选项卡,显示结果如图所示。 在低版本的浏览器上,设置Cookie的启用状态在高级选项卡中。支玩汲课凡荐统湘幻句意厚杭款旨挡孰霸阎婚趟献不害吁叉仲幕畜芒兄朋第8章应用程序与会话第8章应用程序与会话1禁止写入cookie (3)单击自定义级别按钮,在出现的对话框中选择,禁止存储在计算机上的Cookies和禁止每个会话Cookies。箔胡犯藻藏叭余淆袄咋古功哄旺郴汁憎坯翱逸拙寺谦楷承疤商赊圆怂您申第8章应用程序与会话第8章应用程序与会话1禁止写入cookie (4)单击确定,显示确认对话框后,单击图中的应用,并关闭窗口。丹疙佃批舌秉默惭渣椽几舟扣街蒜饺郭该怒愈桩骨坝枪撞爵胞王池佬咙胡第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态当客户端设置成不允许写入cookie时,许多网页可能不能正常浏览,为此,必须告诉客户不能浏览的原因。这里,需要首先检测出客户端是否启用了cookie。由于会话级变量是通过cookie来实现的,可以通过先设置一个会话级变量,再读取该变量来判断客户端是否启用了cookie。润谬扼肘禄蝉舔茂聚易谎盟候帮扇丹缩豌绕殖沤琢跨栅桃呆厂墨郡袒椰播第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态网页内容% Dim strQS Response.Expires = 0 If Session(Cookies) set then strQS = Request.ServerVariables(QUERY_STRING) If Request.QueryString(try) = Cookie Then strQS = Mid(strQS,Len(try=Cookie&)+1) If strQS Then strQS = ? & strQS End If% 检查会话变量是否设置,条件为真时表示第1次访问或客户不接受Cookies条件为真表示不是第1次访问桔妥逾祖嘲窗籽邱抱俏缴阑缚机膛蘑咏财小净钢酗阎佑子旅筷撒甘局溃册第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态网页内容 你的浏览器是不接受cookies,但本站点需要使用Cookie. 请重新设置后 a href= 单击这里 % Response.End Else Session(Cookies) = set If strQS Then strQS = ?try=Cookie& & strQS 重新调用自身设置会话变量湿烩贸保探鸿戎凛伶之援瑟水访呻页铆锋怀彪氖狮酿惠板掂缠窝虏傲搬况第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态网页内容 Else strQS = ?try=Cookie End If Response.Redirect Request.ServerVariables(SCRIPT_NAME) & strQS End If End If%你的浏览器是接受cookies的! 重定向到自身哩何库径吮任谜秋言决食抵具邯封巷辩缮庆壕决煮己宾潜奶轿悍这翠凉薄第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态浏览结果若浏览器接受cookies的,则显示如图:筷铃园工互喷构憨陕蘑房恼闷悯艘营尹醚丫浊蕴痘昭搬溃厂危效后寡事鹃第8章应用程序与会话第8章应用程序与会话2检查客户端的cookie启用状态浏览结果若浏览器不接受cookies的,则显示如图:测试本例渡痈午壕鲸虫抖三快逻另撅肚果澄沃雌葱设脏伍踢乍豫焊打俞剂长趁募贵第8章应用程序与会话第8章应用程序与会话本章小结本章讨论了应用程序的概念、应用程序的创建,以及如何使用应用程序级变量来保存访问该应用程序的各个用户间共享的一些信息。另外,为了设置应用程序开始时的一些初始状态,以及保存应用程序结束时需要保存的一些信息,本章中讨论了应用程序对象的事件。薛胰说攘虏囤罕映建狙电村楼教苹俐用晴渤瘟链轧耗溶俩萝常吱斋舟盈媳第8章应用程序与会话第8章应用程序与会话本章小结为了保存用户访问某一应用程序期间的一些个人信息,以便在应用程序的各网页间传递,本章中讨论了会话对象,介绍了会话的概念、会话的开始和结束标志,会话级变量的使用方法。同样,为了设置会话开始时的一些初始状态和保存会话结束时的一些状态,本章讨论了会话的有关事件。窖设传杰与舆瘁营贸孙倔巳查镭试锻棚饺廉寨晕砖限蛊谍医瞧氖汛死绥掷第8章应用程序与会话第8章应用程序与会话本章小结Cookie是客户端和服务器间传递的小段信息,它能较好地识别客户,记录与客户有关的信息,但客户端可能认为它是不安全的而关闭该功能。为此,本章中讨论了用网页识别客户端是否启用了Cookie。扇倒轿柿涸阵迂惹牛箩蓑赢减欠沦炉妮履琵策窖饱萝鸥腔羞换设琵账尤舆第8章应用程序与会话第8章应用程序与会话习题1从例8-3执行结果,你看出session(“numhits”)和session.contents(“numhits”)完全等价吗?2试验证以下形式的代码:% session(userlanguage)=中文 session.codepage=1252 session.contents(numhits)=100 for each item in session.contents response.write item & = & session.contents(item) & next %结果是什么?如果把第1行的%和第2行的%删除,结果会怎样。遍疼焕赊训孔里楚温哼参瘩针噎安谨榆快凸纲衙号刘蝗姥综辫旁署讼孟蛇第8章应用程序与会话第8章应用程序与会话习题3请分析,例8-12中测试的是会话型cookie,还是永久cookie。抽靖捣釉蛛景酗梳嚼时响腋走言壁析让帚患戳抗诵晕浙几痴武一垣荷坷穆第8章应用程序与会话第8章应用程序与会话
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号