ASP.NET(二):Application、Session和Server对象
2015-05-01 11:34
501 查看
导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法。其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Application对象、Session对象和Server对象。
说明:防止多人同时操作数据,并发控制。
附注:
global.asax文件:是一个文本文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。
说明:我们可以讲服务器看做是Server对象。然后,可以将部署在服务器上的应用程序,看做是Application对象。每个客户端请求服务器,建立的链接,称为一个会话,也就是一个Session对象。
说明:程序被部署时,在线和历史均为0。每一次会话开始增添1个,会话结束减少一个。
说明:每打开一次会话(用客户端浏览器访问一次),在线人数就+1,关闭一次会话就-1(人数不会立刻减少,有延时)。如果要想马上看到效果,就得对session的timeout属性进行设置。
现在呢,才发现,在Web程序中,仅仅只是通过一个对象的属性就可以解决了。额,这也算是C/S 和B/S各有各的特点吧。
一、基础把握
1,HttpApplication 类
定义 ASP.NET 应用程序中的所有应用程序对象通用的方法、属性和事件。此类是用户在 global.asax 文件中所定义的应用程序的基类。1,1,Application对象
为所有用户提供共享信息,当站点服务器开启时,Application对象被创建。当站点关闭时,Application对象被销毁。比如说,服务器重新启动,Application中的信息就丢掉了。1,1,1,Application对象的方法
Lock:锁定脚本中所有变量,确保只有当前用户控制该页面,当调用Unlock方法是,当前用户将失去对应用程序的控制。说明:防止多人同时操作数据,并发控制。
2,HttpServerUtility类
提供用于处理 Web 请求的 Helper 方法。2.1,Server对象
Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。2,1,1,Server对象属性
ScriptTimeout:用于指定脚本在终止之前在服务器上运行的时间周期;MachineName:用于获取服务器的计算机名2,1,2,Server对象方法
Execute、Transfer、HTMLEncode等。3,HttpSessionState类
提供对会话状态值以及会话级别设置和生存期管理方法的访问。3.1,Session对象
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。附注:
global.asax文件:是一个文本文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。
二、图形说明
说明:我们可以讲服务器看做是Server对象。然后,可以将部署在服务器上的应用程序,看做是Application对象。每个客户端请求服务器,建立的链接,称为一个会话,也就是一个Session对象。
三、实例应用
简单的做一个历史访问人数和当前在线人数的统计,通过对Application对象、Server对象和Session对象的应用。1,Web窗体设计
说明:程序被部署时,在线和历史均为0。每一次会话开始增添1个,会话结束减少一个。
2,代码(挑主要)
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">namespace WebApplication2 { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { Application["totol"] = 0; Application["online"] = 0; } protected void Session_Start(object sender, EventArgs e) { Application.Lock(); Application["totol"] = (int)Application["totol"] + 1; Application["online"] = (int)Application["online"] + 1; Application.UnLock(); } protected void Session_End(object sender, EventArgs e) { Application.Lock(); Application["online"] = (int)Application["online"] - 1; Application.UnLock(); } </span></span>说明:这是在global.asax文件中的代码。有时候打开VS,里面没有这个文件,得手动添加。项目文件——添加——新建项——全局应用程序类
<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">{ public partial class WebForm3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.Label3.Text = Application["totol"].ToString(); this.Label4 .Text =Application ["online"].ToString (); } } }</span></span>
3,结果
说明:每打开一次会话(用客户端浏览器访问一次),在线人数就+1,关闭一次会话就-1(人数不会立刻减少,有延时)。如果要想马上看到效果,就得对session的timeout属性进行设置。
四、个人感受
Asp.net的六大对象就简单的介绍完了。在学习这一部分的过程中,就想起了做机房的时候,在线人数的显示,是通过查数据库来实现的。第一次做机房的时候,就在想别的在线人数的显示是怎么回事。感觉挺容易的,但当时实现起来真的很难。现在呢,才发现,在Web程序中,仅仅只是通过一个对象的属性就可以解决了。额,这也算是C/S 和B/S各有各的特点吧。
相关文章推荐
- ASP.NET(二):Application、Session和Server对象
- asp.net学习总结——Asp.net对象之Application对象、Server对象
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- .net中Application对象Session对象Server对象精讲
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- 【asp.net】常用内置对象(session,Application,ViewSate)
- ASP.net学习笔记:Application、Session、Server
- ASP.NET页面传值汇总 (Session / Server.Transfer / Query String / Cookie / Application )
- 在ASP.NET中使用Session与Application 对象(续)
- (转)ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- ASP.NET页面传值汇总 (Session / Server.Transfer / Query String / Cookie / Application )
- ASP.NET内置对象之Application 与Session对比
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
- ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等
- ASP.NET页面传值汇总 (Session / Server.Transfer / Query String / Cookie / Application )
- .net知识系列之二:(net内置对象request,reponse,server,session,cookie,application,viewstate)
- asp.net 使用Application和Session对象统计在线人数
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)
- ASP.NET——Application, Session, Cookie, Viewstate, Cache对象用法和区别