Overview:
The Application Object represents a collection of ASP pages. The Application object has zero (0) properties, two (2) collections, two (2) methods, and two (2) events.
Get Started:
Below are a couple scripts for lesson11.
<%@LANGUAGE="JavaScript"%> <% //No ASP Here, just a regular HTML Page %> <HTML> <FORM ACTION="script11a.asp" METHOD="Post"> <STRONG>Would you like to chose the official Application color?</STRONG><BR> <SELECT NAME="OfficialColor"> <OPTION>red</OPTION> <OPTION>white</OPTION> <OPTION>blue</OPTION> </SELECT><BR> <INPUT TYPE="Submit" VALUE="Yes, click here"> </FORM> No, <A HREF="script11a.asp">click here</A>. </HTML>
Click Here to run script11.asp in a new window. Below is script11a.asp.
<%@LANGUAGE="JavaScript"%> <HTML> <% Application.Lock() var OfficialColor = new String( Request.Form("OfficialColor") ) if (OfficialColor=="red") { Application("OfficialColor") = "red" } if (OfficialColor=="white") { Application("OfficialColor") = "white" } if (OfficialColor=="blue") { Application("OfficialColor") = "blue" } if (OfficialColor=="undefined") { //Do nothing. Just leave the color alone. } Application.Unlock() %> <BODY BGCOLOR="<%=Application("OfficialColor")%>"> <STRONG> The official application color is <%=Application("OfficialColor")%>.<BR> </STRONG> </BODY> </HTML>
Application Collections:
The two collections are Contents and StaticObjects. StaticObjects come in the form of the <OBJECT> flag. That's done in the global.asa that we saw in Lesson 09. I'll demonstrate it again down below.
By contrast, the Contents collection is demonstrated above. It allows you to set and retrieve variables with Application scope. The format for setting an Application variable is
Share the Variable:
One last thought on Application Variables. The application variable is shared by all visitors. Let's say that you and I are on the same ASP web site at the same time. If you set the background color to white in script11.asp, then I will see "white" as the official color if I go directly to script11a.asp. Application Variables are by no means the most efficient means of passing information from one user to another.
No Apartment Model:
You may notice that the example above seems to be inefficient. Why not just directly assign Application("OfficialColor") = Request.Form("OfficialColor")? Because we can't. By design, the newer (and updated) versions of Microsoft server software intentionally do not support Apartment Model Behavior.