ASP.NET中application对象的用法

本文导读:Application对象是HttpApplicationState类的一个实例,Application状态是整个应用程序全局的。Application对象在服务器内存中存储数量较少又独立于用户请求的数据。由于它的访问速度非常快而且只要应用程序不停止,数据一直存在,我们通常在Application_Start的时候去初始化一些数据,在以后的访问中可以迅速访问和检索。

一、Application对象的理解

Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数、在线名单、意见调查和网上选举等。在给定的应用程序的多有用户之间共享信息,并在服务器运行期间持久的保存数据。而且Application对象还有控制访问应用层数据的方法和可用于在应用程序启动和停止时触发过程的事件。

Global.asax(通常我们不改名)是一个用来处理应用程序全局的事件。打开文件,系统已经为我们定义了一些事件的处理方法。

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

}

void Application_End(object sender, EventArgs e)

{

//  在应用程序关闭时运行的代码

}

void Application_Error(object sender, EventArgs e)

{

// 在出现未处理的错误时运行的代码

}

void Session_Start(object sender, EventArgs e)

{

// 在新会话启动时运行的代码

}

void Session_End(object sender, EventArgs e)

{

// 在会话结束时运行的代码

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为InProc 时,才会引发 Session_End 事件

// 如果会话模式设置为 StateServer 或 SQLServer,则不会引发该事件

}

通过这些注释我们可以看到,这些事件是整个应用程序的事件,和某一个页面没有关系。

二、Application对象的应用

1.使用Application对象保存信息

(1)、使用Application对象保存信息

Application(“键名”) = 值

或 Application(“键名”,值)

(2)、获取Application对象信息

变量名 = Application(“键名”)

或:变量名 = Application.Item(“键名”)

或:变量名 = Application.Get(“键名”)

(3)、更新Application对象的值

Application.Set(“键名”, 值)

(4)、删除一个键

Application.Remove(“键名”, 值)

(5)、删除所有键

Application.RemoveAll()

或Application.Clear()

2.有可能存在多个用户同时存取同一个Application对象的情况

这样就有可能出现多个用户修改同一个Application命名对象,造成数据不一致的问题。

HttpApplicationState类提供两种方法Lock和Unlock,以解决对Application对象的访问同步问题,一次只允许一个线程访问应用程序状态变量。

关于锁定与解锁

锁定:Application.Lock()

访问:Application(“键名”) = 值

解锁:Application.Unlock()

注意:Lock方法和UnLock方法应该成对使用。

可用于网站访问人数,聊天室等设备

3. 使用Application事件

在ASP.NET应用程序中可以包含一个特殊的可选文件—Global.asax文件,也称作ASP.NET应用程序文件,它包含用于响应ASP.NET或HTTP模块引发的应用程序级别事件的代码。

三、Application总结

在ASP.NET 2.0中,Application已经变得不是非常重要了。因为Application的自我管理功能非常薄弱,它没有类似Session的超时机制。也就是说,Application中的数据只有通过手动删除或者修改才能释放内存,只要应用程序不停止,Application中的内容就不会消失。在下一节中,我们会看到,可以使用Cache实现类似Application的功能,同时Cache又有丰富而强大的自我管理机制。

总结一下Application的特性:

· 存储的物理位置。服务器内存。· 存储的类型限制。任意类型。

· 状态使用的范围。整个应用程序。· 存储的大小限制。任意大小。

· 生命周期。应用程序开始的时候创建(准确来说是用户第一次请求某URL的时候创建),应用程序结束的时候销毁。

· 安全与性能。数据总是存储在服务端,安全性比较高,但不易存储过多数据。

· 优缺点与注意事项。检索数据速度快,但缺乏自我管理机制,数据不会自动释放。

ASP.NET中application对象的用法(面试题)的更多相关文章

  1. ASP.NET中application对象的用法

    一.Application对象的理解 Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数.在线名单.意见调查和网上选举等.在给定的应用程序的多有用户之间共享信息,并在服 ...

  2. ASP.NET中application对象

    ASP.NET中application对象的使用. Application对象的应用  1.使用Application对象保存信息  (1).使用Application对象保存信息  Applicat ...

  3. asp.net中application,cookies,stateview,session的使用

    Cookie Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn ...

  4. delphi中Application.MessageBox函数用法详解

    delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

  5. 【转载】Asp.Net中Cookie对象的作用以及常见属性

    Cookie对象是服务器为用户访问存储的特定信息,这些信息一般存储在浏览器中,服务器可以从提交的数据中获取到相应的Cookie信息,Cookie的最大用途在于服务器对用户身份的确认,即票据认证,用户会 ...

  6. asp.net中Request.ServerVariables的用法

    在asp.net中可以通过HttpRequest.ServerVariables 属性来获取“ Web 服务器变量的集合” HttpRequest.ServerVariables 的用法: HttpR ...

  7. [转]Android中Application类的用法

    原文链接:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application ...

  8. asp.net中Response对象鱼Request对象

    在asp.net中Response与Request对象是两个常用的对象,虽然他们长得有点像,但是作用却是截然不同,我们来看一下他们他们都有哪些不同. 一.Response对象主要作用:像浏览器输出信息 ...

  9. asp.net中C#对象与方法 属性详解

    C#对象与方法 一.相关概念: 1.对象:现实世界中的实体 2. 类:具有相似属性和方法的对象的集合 3.面向对象程序设计的特点:封装  继承 多态 二.类的定义与语法 1.定义类: 修饰符 类名称 ...

随机推荐

  1. Excel 复制Sql查询结果错位

    SELECT TOP 30000 REPLACE(REPLACE(T1.ReceiverName,CHAR(10),' '),CHAR(13),' ') AS ReceiverName, REPLAC ...

  2. EF OrderBy(string propertyname), OrderByDescending(string propertyname) 按属性排序,扩展方法

    public static class LinqExtensions { private static PropertyInfo GetPropertyInfo(Type objType, strin ...

  3. surface pro系统按键+重装系统

    一. 如果无法进入系统: surface pro1代,可以插入U盘启动盘,然后按音量键上键,然后按电源键,然后释放电源键,然后等屏幕上"Surface"出来后,释放音量键. 2代以 ...

  4. laravel创建定时任务

    官方文档给出的教程已经很详细了,这里给出一些补充帮助大家理解. 英文文档:https://laravel.com/docs/5.2/scheduling 中文文档:https://laravel-ch ...

  5. jq小demo—图片翻页展示效果 animate()动画

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. FOUNDATION_EXPORT 延伸

    一般iOS我们定义常量的方法有两种,来看下面例子 我的.h文件 1 2 FOUNDATION_EXPORT NSString * const kMyConstantString;   FOUNDATI ...

  7. @Scheduled(cron = "0 0 * * * ?")实现定时任务

    //每一个小时执行一次 @Scheduled(cron = "0 0 * * * ?") public void saveDailyScoreScheduled() { try { ...

  8. JAVA String 工具类

    java StringUtil 字符串工具类 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util. ...

  9. ASP.NET的三层架构(DAL,BLL,UI)

    ASP.NET的三层架构(DAL,BLL,UI) BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Laye ...

  10. 第二节windows系统下Xshell 5软件远程访问虚拟机 Linux系统

    下载Xshell 5软件在windows下安装 安装好后Xshell 5启动软件 下一步,检查虚拟机,配置是否正确 下一步,设置网络,保障虚拟机系统能够连接网络 下一步,进入虚拟机系统,检查虚拟机网络 ...