Application、Session和Cookie对象分析.pptx
-
资源ID:12856520
资源大小:759.75KB
全文页数:28页
- 资源格式: PPTX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Application、Session和Cookie对象分析.pptx
ACCP V4.0第六章第六章Application、Session和Cookie对象ACCP V4.0回顾q 传递Form表单中的控件值用Request.Form 获取值,地址栏中传递的参数用 Request.QueryString获取q 通常用HttpResponse 类的属性Buffer、Cache、Cookie 和 Expires来设置站点的一些特性q HttpResponse 类常用方法是 Write()、End() 和 Redirect()q HttpServerUtility 类的Execute()和Transfer()的区别关键在于执行后控制权是否返回原先页面、URLEncode()和HTMLEncode()主要用于对HTML 标签和URL进行编码,对站点或程序的安全具有重要意思, MapPath()获取物理路径时需要注意是绝对路径还是相对路径2ACCP V4.0目标q 运用Global.asax 文件q 使用 Application 对象q 创建并读取 Cookieq 使用 Session 对象3ACCP V4.0ASP.NET中数值传递模型介绍4ACCP V4.0Global.asax 2-1“Global.asax” q 存储所有事件的事件处理程序q 存储在应用程序的根目录下q 它的位置定义应用程序的限界q 包含所有应用程序的配置设置5ACCP V4.0Global.asax 2-2httpApplication类类实例事件事件处理程序Global.asax配置设置存储于文件事件说明Application_Start调用当前应用程序目录(或其子目录)下的第一个 ASP.NET 页面时触发。Application_End应用程序的最后一个会话结束时触发。用 Internet 服务管理器管理单元停止 Web 应用程序时也会触发Application_BeginRequest每次页面请求开始时触发(理想情况下是在页面加载或刷新时)Application_EndRequest每次页面请求结束时(即每次在浏览器上执行页面时)触发Session_Start每次新的会话开始时触发Session_End会话结束时触发。(关于会话可以采用何种方式结束,请参见会话对象)6ACCP V4.0TestingGlobal.aspx示例 4-1 protected void Application_Start(Object sender, EventArgs e) protected void Session_Start(Object sender, EventArgs e)Response.Write( “会话已开始 ); protected void Application_BeginRequest(Object sender, EventArgs e) Response.Write(“应用程序开始); Response.Write (“应用程序请求开始);Global.asax 文件打开代码隐藏类文件 Global.asax.cs。将代码分别添加到 Global.asax.cs 中的各个事件中7ACCP V4.0TestingGlobal.aspx示例 4-2 protected void Application_EndRequest(Object sender, EventArgs e) Response.Write (“应用程序请求结束); protected void Session_End(Object sender, EventArgs e)Response.Write(“会话已结束); protected void Application_End (Object sender, EventArgs e)8ACCP V4.0TestingGlobal.aspx示例 4-3private void Page_Load(object sender, System.EventArgs e)Response.Write(“页面加载事件);将默认 ASP.NET 页面WebForm1.aspx重命名为TestingGlobal.aspx, 并添加给定的代码片段9ACCP V4.0TestingGlobal.aspx示例 4-4会话尚未结束 输出结果10ACCP V4.0Application 对象存储并维护应用程序级的数据Application 对象Application 状态状态HttpApplicationState方法集合Application 状态状态由它们表示由它们表示类类11ACCP V4.0Application 变量变量用于在应用程序执行时存储数据应用程序级会话级string myname = “张三;Response.Write (“欢迎 + myname);12ACCP V4.0对象级变量 3-1protected void Application_Start(Object sender, EventArgs e)Application.Lock ();ApplicationUserNum =0;Application.UnLock();protected void Session_Start(Object sender, EventArgs e)Response.Write(调用Session_Start:会话已开始 );Application.Lock();ApplicationUserNum=int.Parse(ApplicationUserNum. ToString()+1;Application.UnLock();protected void Session_End(Object sender, EventArgs e) Response.Write(调用Session_End:会话已结束); Application.Lock(); ApplicationUserNum=int.Parse(Application UserNum.ToString()-1; Application.UnLock();13ACCP V4.0对象级变量 3-2private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面Response.Write(你是第+ ApplicationUserNum.ToString() + 位访客);14ACCP V4.0对象级变量 3-315ACCP V4.0Lock 和 Unlock 方法 Lock()Lock() 用于防止用户更改 Application 对象的属性 Lock() 可用作 Application.Lock() UnLock()Unlock() 方法用于释放对应用程序变量的锁定UnLock() 可用作Application.UnLock()16ACCP V4.0向应用程序添加、更新和移除项 方法方法说明说明Add()向 Application 状态添加新对象。例如,下列代码会向应用程序状态添加项:Application.Add(“Title”, article board);或 Application(“Title”) = “Article Board”; Clear()从 Application 状态中移除所有对象 Remove()从 Application 集合中按名称移除项。例如,下列代码移除 Title 项:Application.Remove(Title) HttpApplicationState 方法方法Application 对象还提供 Get() 和 Set() 方法,可用于按名称或索引获取对象,并相应地更新对象的值17ACCP V4.0CookiesCookie在客户端系统中维护客户的个人信息 会话会话 Cookie持久性持久性 Cookie18ACCP V4.0创建和读取会话 CookieHttpCookie objHttpCookie = new HttpCookie(“UserName”, “张三); Response.Cookies.Add(objHttpCookie); 新建 Cookie将新 Cookie 添加到 Response 对象的 Cookie 集合中 创建 Cookie读取 CookieResponse.Write(Request.Cookies(“UserName).Value);Value 属性将 Cookie 的值作为字符串返回19ACCP V4.0创建和读取持久性 Cookie读取 CookieHttpCookie objHttpCookie = new HttpCookie(“UserName”,“张三); objHttpCookie.Expires = DateTime.Now.AddMinutes(2);Response.Cookies.Add(objHttpCookie); 新建 Cookie用 Cookie 的 Expires 属性将 Cookie 的过期期限设置为两分钟创建 CookieResponse.Write(Request.Cookies(“UserName).Value);20ACCP V4.0Session 对象qSession 对象用于存储用户的信息 q当新用户请求应用程序的网页时,Server 对象会检查用户是否有 SessionIDqSession 对象包含特定于某个用户的信息q在用户会话期间可以记录和监视特定于用户的信息q当会话过期或终止时,服务器就会清除 Session 对象优点21ACCP V4.0Session 变量qSession 变量与 application 变量不同qSession 变量仅提供给会话中的特定用户qSession 变量可用于存储在整个用户会话过程中都可以访问的值22ACCP V4.0 private void btnLogin_Click(object sender, System.EventArgs e) if(this.txtName.Text.Trim()!= | this.txtPwd.Text.Trim()!=) if(this.txtName.Text=张三 & this.txtPwd.Text= 123456) SessionUserName=this.txtName.Text.Trim(); Response.Redirect(SessionVariableWelcome.aspx?pwd= +this.txtPwd.Text ); else SessionUserName=;RegisterStartupScript(Check,alert(用户名或密码不对,请检查!用户名或密码不对,请检查!); ); else SessionUserName=; 23ACCP V4.0使用示例 3-2private void Page_Load(object sender, System.EventArgs e)if(SessionUserName.ToString().Trim()!=) Response.Write (alert(欢迎 +SessionUserName + 光临,你的密码是: +Requestpwd.ToString()+);else Response.Redirect(SessionVariableNew.aspx);24ACCP V4.0使用示例 3-325ACCP V4.0Session事件qSession_Start当新用户访问一个应用程序时会激活该事件qSession_End用户退出应用程序时,就会触发 Session_End 事件26ACCP V4.0Session 属性Session 事件事件Session_StartSession_End属性说明SessionID包含一个唯一的用户会话标识符。它用于在会话过程中跟踪用户的信息。要检索 SessionID,使用 Session.SessionIDTimeOut设置用户超时,即它以分钟为单位指定 Session 对象在释放资源之前能够保持闲置的时间。用户可导航至另一个站点而不用关闭该应用程序。如果设定了超时属性,则无人操作的用户会话可被清除,由此释放服务器的资源。 默认值为 20 分钟。可通过在 ASPX 文件中赋值来更改此设置。例如,LCID用于设定本地标志符. 它可存储本地信息,如日期、货币和时间格式。例如 Session.LCID = 0 x040C 将本地标识符设定为法国本地标识符IsNewSession若该会话是由当前请求创建的,该属性将返回值 trueItem获取或设置会话值的名称Count获得会话状态集合中的项数27ACCP V4.0总结qGlobal.asax 文件包含常用的Application_Start、Application_End、Session_Start、Session_End等事件qApplication 对象是存储于服务器的全局变量qCookie 存储信息于客户端qSession 对象用于在服务器端存储用户的信息,在用户结束会话时被清除q新用户访问应用程序时会激活 Session_Start 事件,而用户退出应用程序时会触发 Session_End 事件28