上篇博文介绍了在客户端状态管理的两种方式:http://www.cnblogs.com/wolf-sun/p/3329773.html。除了在客户端上保存状态外,还可以在服务器上保存状态。使用客户端的状态,其缺点在于增加了数据在网络之间的传送。使用服务器端状态的缺点在于,服务器必须给客户端分配资源,下面详细讨论服务器端的状态管理技术。
服务器端的状态管理
- Session
会话状态与浏览器会话相关。客户在服务器上第一次打开Asp.Net页面时,会话就开始了。当客户在20分钟之内没有访问服务器,会话结束,销毁session。
可以在Global Application类(即全局应用程序类)中定义自己的代码,会话开始或结束时运行。会创建Global.asax文件。在这个文件中,定义了一些时间处理程序例程:
1 public class Global : System.Web.HttpApplication 2 { 3 4 protected void Application_Start(object sender, EventArgs e) 5 { 6 7 } 8 9 protected void Session_Start(object sender, EventArgs e) 10 { 11 12 } 13 14 protected void Application_BeginRequest(object sender, EventArgs e) 15 { 16 17 } 18 19 protected void Application_AuthenticateRequest(object sender, EventArgs e) 20 { 21 22 } 23 24 protected void Application_Error(object sender, EventArgs e) 25 { 26 27 } 28 29 protected void Session_End(object sender, EventArgs e) 30 { 31 32 } 33 34 protected void Application_End(object sender, EventArgs e) 35 { 36 37 } 38 }