Tento objekt umožňuje předávat hodnoty proměnných mezi jednotlivými stránkami dané ASP aplikace, ale také mezi jednotlivými uživateli pracujícími s naší aplikací. Typicky se proměnné viditelné na úrovni celé aplikace využívají například pro realizaci počítadla přístupů.
Objekt Application je vytvořen v okamžiku, kdy první uživatel přistoupí k některé stránce naší webové aplikace. Ihned po vytvoření objektu Application, je vytvořen také objekt Session, do něhož se ukládají proměnné viditelné pouze pro tohoto uživatele v rámci jeho session.
Objekt Application poskytuje dvě metody, které umožňují řídit přístup ke globálním proměnným na úrovni aplikace, aby bylo možné ochránit obsah těchto proměnných proti jeho porušení při souběžném přístupu více uživateli.
Metoda Lock uzamkne objekt Application tak, že k němu může přistupovat pouze daná ASP stránka, tím se zamezí porušení dat při souběžném čtení a aktualizaci více stránkami.
Metoda UnLock uvolní zámek na objektu Application.
Tato metoda by měla být zavolána co nejdříve po uzamčení metodou Lock, neboť při pokusu o přístup k zamčenému objektu Application musí ostatní klienti čekat na uvolnění zámku a zbytečné uzamykání tak prodlužuje dobu načítání stránek ostatním uživatelům.
Atribut Value zprostředkovává přístup k hodnotám uloženým pro danou aplikaci. Obvykle se vynechává.
Následující dva zápisy jsou ekvivalentní:
Application.Value("Pocitadlo") = Application.Value("Pocitadlo") + 1
Application("Pocitadlo") = Application("Pocitadlo") + 1
Objekt Application má dvě události, které se používají v souboru global.asa.
Událost OnStart nastává, když první klient zavolá některou ze stránek dané ASP aplikace.
Událost nastane před vytvořením session a před zpracováním stránky, kterou klient požaduje. V obslužné funkci této události se provádí inicializace proměnných a objektů, které mají být globální pro danou aplikaci (tzn. pro všechny stránky aplikace a pro všechny uživatele).
Příklad nastavení proměnné na čas spuštění aplikace:
Sub Application_OnStart()
Session("StartAplikace") = Now()
End Sub
Událost OnEnd je vyvolána v případě ukončení aplikace. K tomu může dojít například při vypínání webového serveru.
Objekt Application obsahuje dvě kolekce standardního typu.
Tato kolekce obsahuje všechny proměnné a hodnoty uložené pro danou aplikaci, kromě objektů vytvořených s využitím elementu <OBJECT>.
Přestože je možný přístup k proměnným dané aplikace prostřednictvím kolekce Contents, obvykle se tato kolekce používá jen pro zjištění seznamu proměnných, které jsou pro tuto aplikaci dostupné. K jednotlivým proměnným se obvykle přistupuje přímo přes objekt Application.
Například:
Application("Pocitadlo") = Application("Pocitadlo") + 1
Pro vypsání všech položek kolekce můžeme použít následující kód:
For Each polozka In Application.Contents
If IsObject(Application.Contents(polozka)) Then
Response.Write "Objekt: '" & polozka & "'<BR>"
ElseIf IsArray(Application.Contents(polozka)) Then
Response.Write "Pole: '" & polozka & "'<BR>"
Else
Response.Write "Proměnná: '" & polozka & "' = " & Application.Contents(polozka) & "<BR>"
End If
Next
Tato kolekce obsahuje objekty vytvořené pro aktuální aplikaci prostřednictvím elementu <OBJECT> v souboru global.asa.
Všechny hodnoty této kolekce lze pouze číst. Obvykle se k nim přistupuje přímo přes objekt Application, např.:
obj = Application("Objekt")
Kolekce StaticObjects se obvykle používá pouze pro zjištění seznamu objektů dostupných v aktuální aplikaci.
For Each obj In Application.StaticObjects
If IsObject(Application.StaticObjects(obj)) Then
Response.Write "Objekt: ID = '" & obj & "'<BR>"
End If
Next