![]() |
||||||||||||
|
[Lifetime of variables][Applications][The
Global.asa file][ASP Built-in Objects][Response
Object] A variable declared outside a procedure, can be accessed and changed by any script in the ASP page where it is declared. A variable declared inside a procedure, is created and destroyed every time the procedure is executed. No scripts outside that specific procedure can access or change that variable. To make a variable accessible in several ASP pages, declare session variables or application variables. Session Variables Session variables stores information about one single user, and are available to all pages in one application. Common information stored in session variables is username and userid. To create a session variable, store it in a Session Object. Application Variables Application variables are also available to all pages in one application. Application variables are used to hold information about all users in a specific application. To create an application variable, store it in an Application Object. Session object When you are working with an application, you open it, do some changes and then you close it. This is much like a Session. The computer knows who you are. It knows when you start the application and when you end. But on the Internet there is one problem: the web server does not know who you are and what you do because the HTTP address doesn't maintain state. ASP solves this problem by creating a unique cookie for each user. The cookie is sent to the client and it contains information that identifies the user. This interface is called the Session object. The Session object is used to store information about, or change settings for a user session. Variables stored in the Session object holds information about one single user, and are available to all pages in one application. Common information stored in session variables is name, id, and preferences. The server creates a new Session object for each new user, and destroys the Session object when the session expires. When does a Session Start A session can start when:
A session ends if a user has not requested or refreshed a page in the ASP application for a specified period. This value is 20 minutes by default. If you want to set a timeout interval that is shorter or longer than the default, you can set the Timeout property. The example below sets a timeout interval of 5 minutes.
To end a session you can also use the Abandon method.
Note: The main problem with sessions is WHEN they should end. We do not know if the user's last request was the final one or not. So we do not know how long to keep the sessions alive. Waiting too long uses up resources on the server. But if the session is deleted too fast you risk that the user is coming back and the server has deleted all the information, so the user has to start all over again. Finding the right timeout interval can be difficult. Tip: If you are using session variables, store SMALL amounts of data in them. Store and Retrieve Variable Values The most important thing about the Session object is that you can store variables in it, like this:
The example above will set the Session variable username to Hege and the Session variable age to 24. When the value is stored in a session variable it can be reached from any page in the ASP application by using: Session("username"):
The line above returns: "Welcome Hege". You can also store user preferences in the Session object, and then access that preference to choose what page to return to the user. The example below specifies a text-only version of the page if the user has a low screen resolution:
Remove Variable Values The Contents collection contains all the variables that have been created and stored in a session. By using the Remove method, you can remove a variable from a session. The example below removes an item, in this case a session variable named "sale":
You can also use the RemoveAll method to remove all variables in a session:
Looping Through the Contents You can loop through the Contents collection, to see what is stored in it:
Result:
If you do not know the number of items in the Contents collection, you can use the Count property:
Result:
Looping Through the Objects You can loop through the StaticObjects collection, to see the values of all the objects stored in the Session object:
|
||||||||||||
![]() |
||||||||||||