《 ASPNET数据库网站设计教程(C#版)》 配套教学资源 第5章 ASP NET的状态 管理 本章内容: ASPNET的状态管理包括使用 Cookie、 Session、 Application对象 实现状态管理,跨页存取数据,全局数据共享等 本章重点:使用 Cookie对象实现状态管理,使用 Session对象存、取数据, 使用 Application对象共享数据 圖王出妖社
第5章 ASP.NET的状态 管理 《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 本章内容:ASP.NET的状态管理包括使用Cookie、Session、Application对象 实现状态管理,跨页存取数据,全局数据共享等。 本章重点:使用Cookie对象实现状态管理,使用Session对象存、取数据, 使用Application对象共享数据
51状态管理概述 所谓“状态管理”,是指使用 ASP. NET中的Ⅴ iewState、 Cookie、 Session和 Application等对象实现页面数据缓存和传 递的技术。 ASP.NET是一种无状态的网页连接机制,服务器处理客户 端请求的网页后,与该客户端的连接就中断了。此外,到 服务器端的每次往返都将销毁并重新创建网页,因此,如 果超出了单个网页的生存周期,网页中的信息将不复存在 也就是说,在默认情况下,服务器不会保存客户端再次请 求页面和本次请求之间的关系和相关数据 在C/S架构的应用程序中,使用全局变量即可很好地解决 这个问题,而在 ASPNEt环境中则需要使用与状态管理相 关的对象来保存用户数据
◼ 所谓“状态管理”,是指使用ASP.NET中的ViewState、 Cookie、Session和Application等对象实现页面数据缓存和传 递的技术。 ◼ ASP.NET是一种无状态的网页连接机制,服务器处理客户 端请求的网页后,与该客户端的连接就中断了。此外,到 服务器端的每次往返都将销毁并重新创建网页,因此,如 果超出了单个网页的生存周期,网页中的信息将不复存在。 也就是说,在默认情况下,服务器不会保存客户端再次请 求页面和本次请求之间的关系和相关数据。 ◼ 在C/S架构的应用程序中,使用全局变量即可很好地解决 这个问题,而在ASP.NET环境中则需要使用与状态管理相 关的对象来保存用户数据。 5.1 状态管理概述
52创建和使用 ViewState对象 ViewState对象是 ASP.NET状态管理中常用的一个对象 通常被用来保存web页信息及所含控件的值。 521Ⅴ ViewState对象概述 使用 Viewstate对象可以十分方便地在这一过程中保留当前 页面中所包含的数据。 ■Web页面默认是具有“ form runat= server”特性的, A$PNET会自动在输出时给页面添加一个隐含字段。打开 aspx页面后,在浏览器中右击,在弹出的快捷菜单中 单击“查看源”,即可看到经服务器转换成HM格式后 的页面源代码。如图51所示的是包含在源代码中的 ViewState隐含字段及其值
◼ ViewState对象是ASP.NET状态管理中常用的一个对象,它 通常被用来保存Web页信息及所含控件的值。 ◼ 5.2.1 ViewState对象概述 ◼ 使用ViewState对象可以十分方便地在这一过程中保留当前 页面中所包含的数据。 ◼ Web页面默认是具有“form runat=server”特性的, ASP.NET会自动在输出时给页面添加一个隐含字段。打开 一个aspx页面后,在浏览器中右击,在弹出的快捷菜单中 单击“查看源”,即可看到经服务器转换成HTML格式后 的页面源代码。如图5-1所示的是包含在源代码中的 ViewState隐含字段及其值。 5.2 创建和使用ViewState对象
htp/ localhost:1583/10-3 DataSet应用实例 Default.asp-原始源 上a 文件(F编辑(E格式O) 32<iv 33 <input type="hidden"name="EVENTTARGET"id="EVENTTARGET" value=""/> 34 35 <input type= hi dden names_Ⅵ EUSTATE"1=_Ⅵ ESTATE value:"/wEPDwUIMTEwMze3MDMwNnRKUp 90pHSNPeOvxrzBlBOn3IYqowvEZK9 tmC3cRpNL="/> 36<div> 图5-1包含在web页面中的隐含字段 有了这个隐含字段,页面中其他所有的控件状态,包括页 面本身的一些状态都会保存到这个隐含字段的值里面。并 且,每次页面提交时会一起提交到服务器。当服务器将处 理完毕的页面回发给客户端时,ASP.NET会根据这个值来 恢复页面到各个控件提交前的状态
◼ 有了这个隐含字段,页面中其他所有的控件状态,包括页 面本身的一些状态都会保存到这个隐含字段的值里面。并 且,每次页面提交时会一起提交到服务器。当服务器将处 理完毕的页面回发给客户端时,ASP.NET会根据这个值来 恢复页面到各个控件提交前的状态
522使用 ViewState ■1.使用 ViewState对象时的注意事项 使用 ViewState(视图状态)对象可以带来很多方便,但仍 需要注意以下问题。 ①Ⅴ iewState对象仅能提供当前页面对象的状态信息,而且 这些信息不能跨页使用。 ②Ⅴ tesTate对象被序列化为XML的形式,然后再进行 Base64编码 ③若页面中包含有一些用于分页显示数据的控件(如 Gridview),最好不要使用 Viewstate对象。 ④Ⅴ iewState对象的Ma axPageStateFieldLe gth属性用来指定隐 含字段的最大长度
◼ 5.2.2 使用ViewState ◼ 1. 使用ViewState对象时的注意事项 ◼ 使用ViewState(视图状态)对象可以带来很多方便,但仍 需要注意以下问题。 ◼ ① ViewState对象仅能提供当前页面对象的状态信息,而且 这些信息不能跨页使用。 ◼ ② ViewState对象被序列化为XML的形式,然后再进行 Base64编码。 ◼ ③ 若页面中包含有一些用于分页显示数据的控件(如 GridView),最好不要使用ViewState对象。 ◼ ④ ViewState对象的MaxPageStateFieldLength属性用来指定隐 含字段的最大长度