Application对象报讯是应用程序参数的额,多个用户可以共享一个Application。用于启动和管理ASP.NET应用程序。

Count  属性 获取Application对象变量的个数,集合中的Item对象数。默认为0

protected void Page_Load(object sender, EventArgs e)
{
Application["app1"] = "app1";
Application["app2"] = "app2";
Application["app3"] = "app3";
Response.Write("Application对象数量为:" + Application.Count.ToString() + "个,分别为:<br>" + Application["app1"] + "," +
Application["app2"] + "," + Application["app3"]);
Response.Write(Application["app1"].ToString() + "," +
Application[] + "," + Application["app3"]); }

Item属性 ,分别通过索引和名称来获取单个Application对象的值。

------------------------------------

Application对象的常用方法:

add   新增一个Application对象变量

clear  清除全部

Lock  锁定全部

Remove 使用变量名移除一个Application对象变量

RemoveAll 移除全部

UnLock   解除锁定的Application对象

Application("mr","mr")

public void Add(string name,Object value);

在统计在线人数时候,应先对Application对象加锁,防止因为多个用户同时访问页面而造成并行。格式如下:

Application.Lock();锁定

Application("变量")=表达式; 赋值

Application.UnLock(); 开锁
Application.Remove(string name );

Application.Remove("mr");

Application.RemoveAll();

-------------------------------------------------------------------------------------------

Application的常用事件

Application_Start 首次创建新的会话(即事件)之前发生。只有Application和Server内置对象可使用。Application一旦建立,一直保存直到网站关闭或者该Application对象被卸载。会占用内存。

终止Application对象三中方式:1.服务被中止2,Global.asax文件被改变 3. Application对象被卸载。

新建一个Asp.Net应用程序,默认主页Default.aspx、添加Global.asax文件,并在Application_Start实践中输入代码:

 void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["Name"] = "欢迎您单击百度:www.baidu.com";
}

Application_End事件:在应用程序退出时于Session_End事件之后发生。只有Application和Server内置对象可使用。Application_End事件在服务中止或是Application对象卸载时候才被触发。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

摘自:http://www.cnblogs.com/huashanlin/archive/2006/10/31/546189.html

一、Application对象可以实现应用程序的状态管理 (1)Application的应用:

◆可以统计目前上站的人数

◆可以用于网站上不同用户之间的通信

◆可以记录广告条被点击的次数

◆可以在每个主页上显示动态信息

◆可以从数据库提取数据供多个网页使用
(2)创建Application变量的语法

Application(“变量名称”)如:Application("Welcome")="欢迎光临我的主页!"
(3)Application变量不会自己消亡,在使用中应注意: ●Application变量会始终占据内存,创建过多的变量会降低响应速度 ●Application变量在三种情况下被中止:服务被中止、Global.asa被改变或者该Application被卸载
(4)使用Application对象的语法 Application. 属性│方法
(5)Application对象的方法

Application的方法都是用于处理多个用户对存储在Application中的数据进行写入的问题。共有两个:Lock方法:防止其他客户端更改Application对象的值。(仅当前客户可修改和存取);Unlock方法:与Lock方法相反,允许其他客户端更改Application对象的值。    具体用法:

Application.Lock-锁定Application对象所有变量

Application.Unlock-解锁Application对象所有变量

如;        Application.Lock;

Application("NumCount")=Application("NumCount")+1;(NumCount是在Application_OnStart事件设置的变量)

Application.Unlock;

(6)Application对象的事件       Application有两个事件:

      Application_OnEnd       Application_OnStart

      Application_OnStart:当每个Application对象开始时会激活该事件

      Application_OnEnd:当每个Application对象结束时会激活该事件 上述两个事件必须放在Global.asax文件 (7)Application对象的集合 Application的集合有两个: 1、Contents数据集合

Contents允许程序取得用户能使用的所有的Application对象

注:不包括用<OBJECT>标记与CreateObject方法建立的对象

语法结构:

Application.Contents(Application 对象名称) 2、StaticObjects数据集合可以取得以<OBJECT>标记建立的Application对象

Application.StaticObjects(对象变量名称)

利用<OBJECT>标记创建对象的语法:

<OBJECT RunAt=Server SCOPE=对象 ID=实例对象名>

Application对象重要的方法调用:

·Add方法,加入一个对象到Application对象的Stat集合中 例如: Application.Add(“string1”,”test”) 表示向Application的stat集合中加入一个名为string1的值为”test”的字符串,其实它的效果和 Application(“string1”)=”test” 以及Application.item(“string1”)=”test” 是一样的。

·Remove方法,根据给出的标识从Application对象的Stat集合中删去 例如: Application.Remove(“string1”) 表示把标识为string1的共享对象string1从Application对象的Stat集合中删去。使用它可以清除用Add方法添加的对象。

·RemoveAll方法,把Application对象Stat集合中的所有对象清除,在我们对属性的使用举例中,我们已经见过了它的用法,但是值得小心,我们不提倡使用它,因为在编程中你并不清楚,是否有其他页面要依赖于某个Application的公用变量,一旦清除将造成不可预知的错误。

·Clear方法,作用和RemoveAll方法一样。
·Get方法,允许使用名字标识或者是下标,来取得Application对象stat集合中的对象元素。 例如: dim tmp as object tmp=Application.Get(“string1”) 或者 tmp=Application.Get(0) 表示从Application对象的Stat集合中取得标识为string1或者下标为0的对象 它等价于: tmp=Application(“string1”) tmp=Application(0) 或者是 tmp=Application.item(“string1”) tmp=Application.item(0)

·Set方法,修改Application对象stat 集合中指定标识所对应的对象的值。 例如: Application.Set(“string1”,”try”) 就把我们开始为string1变量设置的值”test”改为”try”了,它和下边的形式也是一样的: Application(“string1”)=try

·GetKey方法,根据给定的下标取得Application对象的stat集合中相应对象的标识名。 例如: dim nameStr as String nameStr=Application.GetKey(0) 表示取得Application对象中Stat集合的第一个对象的标识名

·Lock方法,锁住其他线程对Application对象中stat集合的访问权限。这个方法主要是用来防止对Application的变量操作过程中,其他并发程序可能造成的影响。比如在记数过程中,如果不进行上锁操作,就有可能发生脏读脏写。例如,开始从变量中取得记数值1, 如果在记数并写回到变量之间,另一页面对它发生了一次记数,并先行写回变量,那么最终写回到变量中的值为2,而并不是实际的3。如果采用了上锁机制,在页面读出变量到记数并写回变量的过程中,即使发生了另一次记数,由于变量被锁住,它也不可能在变量被写回以前取得成功,只有等待变量释放,从而形成两者对变量操作的串行性,避免了数据的脏读和脏写。

·Unlock方法,对Application对象Stat集合锁定的解锁操作,释放资源以供其他页面使用。

下面我们就上边学到的方法做一个例子,为了强调lock方法和unlock方法,我们将单独举一个例子。例子是这样的,开始我们创建6个Application变量,赋以数值序号,页面有3个按钮,分别是加1,减1和清除。当点击“加1“按钮后,我们会看到变量的值都会增加1,当点击”减1“按钮后,变量值都减1,当按下清除后,变量都消失了。在清除功能中,我们为了同时演示remove和clear方法,采用最后三个用clear清除,其他的逐一用remove清除。

1. 源程序

<!-- 文件名:Application\FormApplication01.aspx -->

<html>

<script language="vb" runat=server>

Sub Page_Load(o as object,e as eventargs) dim i as integer

If Not IsPostBack for i= to  application.add("item"&i,i) next End If

response.clear for i= to application.count- response.write(application.GetKey(i) & "=" & application.Get(i) & "<br>") next
End Sub Sub AddOne(s as object,e as eventargs) '变量值加1 dim i as integer dim j as integer dim t as string
for i= to Application.count- j=Application.Get(i)+ t=Application.GetKey(i) Application.Set(t,j) next Page_Load(s,e) '刷新画面 End Sub Sub SubOne(s as object,e as eventargs) '变量减1 dim i as integer dim j as integer dim t as string
for i= to Application.count- j=Application.Get(i)- t=Application.GetKey(i) Application.Set(t,j) next Page_Load(s,e) '刷新画面 End Sub Sub Gone(s as object,e as eventargs) '清空所有变量 dim i as integer for i= to Application.count- Application.Remove(i) next '演示remove方法 Application.clear '演示clear方法 Page_Load(s,e) '刷新画面 End Sub </script> <head> <title> Application方法试验 </title> </head> <body bgcolor=#ccccff> <center> <h2>Application方法试验</h2> <hr> <form runat=server> <asp:button type="submit" text="+1" OnClick="AddOne" runat=server /> <asp:button type="submit" text="-1" OnClick="SubOne" runat=server /> <asp:button type="submit" text="清空" OnClick="Gone" runat=server /> </form> </center> </body> </html>

2.开始时,输出画面:

3.当两次点击+1后,输出的变量值:

4.当点击”-1”后,变量的值为:

5.当点击清空后,输出的画面

接下来,我们看一个使用lock和unlock方法制作计数器的例子:Application对象对不同的连接者是共用的,因此适合制作计数器。

程序代码如下:省略 -------------------------- asp.net改善application对象加快存储速度 在传统的asp中,我们要用application对象去存储应用于整个application的变量。这当然会带来内存消耗的代价。在.net中,我们可以用static变量来改善它,采用static 变量在大多数时候存储的速度会比application对象快。     做法:
  创建一个webapplication,假设名称为webapplication1,在global.aspx中的global类中增加一个静态的成员sgreeting.

    public class global : system.web.httpapplication   {   public static string sgreeting = "china is great!";   ……   }

在webform1中增加一个label,名称为label1.     在page_load()中为label1的text属性赋值。

private void page_load(object sender, system.eventargs e)   {   label1.text = webapplication1.global.sgreeting;   }

运行程序后将会看到china is great!

Application对象的更多相关文章

  1. Application对象、ViewState对象、分页展示--2017年1月4日

    Application对象 存储 Application 变量  Application["application名称"] = "application的值"; ...

  2. JSP内置对象之application对象

    虽然常把Web应用称为B/S架构的应用,但其实Web应用一样是C/S结构的应用,只是这种应用的服务器是Web服务器,而客户端是浏览器. 现在抛开Web应用直接看Web服务器和浏览器. Web服务器负责 ...

  3. 什么是Cookie对象,Session对象,Application对象。

    Cookie是: 一个由网页服务器放在您硬盘上的非常小的文本文件. 它本质上就像您的身份证明一样,并且不能像代码那样被执行或被用来散布病毒.它只能被您使用并且只能由提供的服务器读取. 使用Cookie ...

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

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

  5. Android Application 对象介绍

    What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application ...

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

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

  7. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. ASP.NET中application对象

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

  9. 初识 Asp.Net内置对象之Application对象

    Application对象 Applocation对象用于共享应用程序级信息,即多个用户可以共享一个Applocation对象. 用户在请求Asp.Net文件时,将启动应用程序并且创建Applicat ...

  10. jsp 用application对象制作留言板

    <%@ page contentType="text/html; charset=gb2312"%> <html> <body> <for ...

随机推荐

  1. split分割函数

    java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]]) 参 ...

  2. 在Dll中创建对话框并调用

    1.第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”. 2.添加一对话框资源到工程中,从 ...

  3. 开发MOSS自定义字段类型

    前段时间,由于刚好项目定制的需要,笔者就开发了几个自定义字段类型.在这抽空做个详细笔记,方便初学者学习.这方面的资料也很多,如果自身觉得不大明白可以参考下SDK和网上的相关文章.本章的目的主要是给新手 ...

  4. UI篇—UITableview

    一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支 ...

  5. 浅谈测试rhel7新功能时的感受及遇到的问题【转载】

    半夜起来看世界杯,没啥激情,但是又怕错误意大利和英格兰的比赛,就看了rhel7 相关新功能的介绍. rhel7的下载地址: https://access.redhat.com/site/downloa ...

  6. js实现td排序及分组分类

    如题 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  7. Spring.NET 中的 ADO.NET 数据访问的示例

    Spring.NET 1.3.1 中提供了一个使用 AdoTemplate 的完整示例,包括使用泛型和使用非泛型技术进行数据访问,这个示例位于下载的压缩包中\Spring.NET-1.3.1\Spri ...

  8. 使用queryperf对DNS服务器作压力测试

    一.querperf简介 当我们把DNS服务器配置好后,我们肯定会想测试一下DNS服务器的性能如何,上线后如果请求数够多服务器还能否响应?于是,我们可以使用软件模拟环境,对DNS服务器作评估性的测试. ...

  9. c_select 调用参数说明

    c_select 调用 1. select系统调用select系统调用是用来让我们的程序监视多个文件描述符的状态变化的.程序会停在select这里等待,直到被监视的文件描述符有某一个或多个发生了状态改 ...

  10. ajax实例及实现文本框异步搜素

    search.jsp(WebContent/jsp/search.jsp) <%@ page language="java" contentType="text/h ...