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的时候创建),应用程序结束的时候销毁。

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

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

转载于:https://www.cnblogs.com/qiushuixizhao/p/5148489.html

ASP.NET中application对象的用法(面试题)相关推荐

  1. 谨慎Asp.net中static变量的用法

    谨慎Asp.net中static变量的用法 .Net技术 2007-01-30 22:17:37 阅读925 评论11 字号:大中小 谨慎Asp.net中static变量的用法 在.Net平台下进行C ...

  2. ASP.NET使用Application对象实现漂流瓶

    ASP.NET使用Application对象实现漂流瓶 最后实现效果 其实也很简单 //扔一个button中代码protected void Button1_Click(object sender, ...

  3. 比较.ASP.NET中Application,Session,Cookie,ViewState和Cache

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

  4. Asp.net中Application Session Cookie ViewState Cache

    Application 1.         Application用来保存所有用户共用的信息 2.         在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Ap ...

  5. asp.net中page对象生命周期和各事件执行顺序

    asp.net页面事件执行顺序: 一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture ...

  6. Asp.net中Request对象的使用

    1,Request对象用于检索从浏览器向服务器所发送的请求的信息,他提供对当前页面请求的访问,包括标题.Cookie和查询字符串等.其常见用法包括Request.QueryString.Request ...

  7. 案例讲解asp.net中jquery post的用法

    一.post案例: 1.前台default.aspx: <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...

  8. Classic ASP 系列(3) Application 对象

    A group of ASP files that work together to perform some purpose is called an application. The Applic ...

  9. Python中enumerate对象的用法与特点

    Python的内置函数enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组. #枚举字符串中的元素 >>> l ...

最新文章

  1. u-boot2011.09 u-boot.img 的流程跟踪
  2. Linux之不删除指定文件夹,其他都删(文件和文件夹)
  3. Python爬虫基础面试题为2020年初大学生就业做准备(文末附教程)
  4. 05-配置数据库的远程连接 创建hive数据库的时候要选择latin1
  5. JAVA-最常用的A题语法
  6. MySQL内核:InnoDB存储引擎 卷1
  7. 反思拖延症:持续告诉自己立即做立即做;面对困难时要持续坚持;面对困顿时要转变方法
  8. Dotnet Core异常处理的优雅实践
  9. [书籍推荐]《软件设计精要与模式(第2版)》-张逸——提高设计模式及软件设计的方法...
  10. matlab 带有下标的赋值维度不匹配_远见另类资产管理体系下的核心系统搭建
  11. Python3 写JSON数据到文件(多行格式化版)
  12. 容器编排技术 -- Kubernetes从零开始搭建自定义集群
  13. docker安装nginx,配置nginx,并成功访问
  14. 触屏touch事件记录
  15. 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》定价修改...
  16. hadoop中4种压缩格式的特征的比较
  17. Python基础—文件操作
  18. 项目经理需要具备的技能
  19. 你为什么始终做不好会议营销?「会议营销」电子书免费下载
  20. 奶茶封口膜-市场现状及未来发展趋势

热门文章

  1. 运维-系统架构师经验总结:
  2. windows 远程登录用户管理
  3. Java获取yahoo天气预报
  4. [转载] 中华典故故事(孙刚)——21 正月剪头死舅舅
  5. 瑞典皇家理工学院工程实例:Sound localization
  6. Struts2+Spring详解
  7. HDOJ 1166 敌兵布阵
  8. PHP中date()函数详细参数
  9. 经典算法学习——冒泡排序
  10. B-树的插入、查找、删除