导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法。其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Application对象、Session对象和Server对象。

一、基础把握

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对象的更多相关文章

  1. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  2. ASP.NET:Application,Session,Cookie,ViewState和Cache之间的区别(转)

    在ASP.NET中,有很多种保存信息的对象.例如:Application,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了更清楚 ...

  3. Application对象、Session对象、Cookie对象、Server对象初步认识

    Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Applicatio ...

  4. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  5. ASP.NET 使用application和session对象写的简单聊天室程序

    ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...

  6. ASP.NET整理:Cookie,Application,Session,页面生命周期

    一.设置Cookie的2种方式 1.    Repsonse.Cookie[“名”] = 值; 2.    HttpCookie hcCookie = new HttpCookie(“名”,值); h ...

  7. ASP.NET之Application、Session和Cookie的差别

    在Asp.net中Application.Session和Cookie都能够保存信息,那么它们有什么不同呢? 一.首先Application是在server端建立一个状态变量,存储于server的全局 ...

  8. 初识 Asp.Net内置对象之Server对象

    Server对象 Server对象定义了一个于Web服务器相关联的类提供对服务器上的方法和属性的访问,用于访问服务器上的资源. Server对象的常用属性 属性   MarhineName 获取服务器 ...

  9. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

随机推荐

  1. spring mvc 获取所有注册的url

    背景:坑货同事写代码一点规范都没有,瞎写,根据url没法直接定位到方法,无奈产生了此接口,程序员何苦为难程序员呢 @Autowired private RequestMappingHandlerMap ...

  2. SpringBoot 2.x (12):整合Elasticsearch

    Elasticsearch:一个优秀的搜索引擎框架 搜索方面最基本的是SQL的like语句 进一步的有Lucene框架 后来有企业级的Solr框架 而Elasticsearch框架尤其适合于数据量特别 ...

  3. SpringBoot 2.x (10):整合Redis

    Redis部署到阿里云: 下载redis源码,编译,允许远程访问的配置 阿里云安全组设置: SSH连过去: wget http://download.redis.io/releases/redis-4 ...

  4. codeforces1025

    hackforces + fstforces A 很明显当有一个字母出现次数>1时即合法 $n = 1$的情况需要特判 #include<cstdio> #include<ve ...

  5. MediaRecord一些使用记录

    今天学习了MediaRecord的使用,第一次使用做个记录. MediaRecord作用是声音录制,使用步骤如下: 1.新建出音频文件代码如下: 先创建出用于存储音频文件 File dir = new ...

  6. PHP识别二维码功能,php-zbarcode 安装

    php-zbarcode是PHP识别二维码的扩展. 下面是安装方法,安装前要先安装ImageMagick.zbar. php-zbarcode 下载地址 安装ImageMagick: yum inst ...

  7. 异步 BeginInvoke

    委托的异步调用异步多线程的三大特点:1.同步方法卡界面,原因是主线程被占用:异步方法不卡界面,原因是计算交给了别的线程,主线程空闲2.同步方法慢,原因是只有一个线程计算:异步方法快,原因是多个线程同事 ...

  8. The Singapore NRIC Check Digit

    The Singapore NRIC number is made up of 7 digits and a letter behind. This letter is calculated from ...

  9. 在ABAP里模拟实现Java Spring的依赖注入

    Dependency Injection- 依赖注入,在Java Spring框架中有着广泛地应用.通过依赖注入,我们不必在应用代码里繁琐地初始化依赖的资源,非常方便. 那么ABAP能否从语言层面上也 ...

  10. 单源最短路Dijstra

    #include<iostream> #include<cstring> #define INF 0x3f3f3f3f using namespace std; ][],d[] ...