Session 개체

Session 개체를 사용하여 특정 사용자 세션에 필요한 정보를 저장할 수 있습니다. Session 개체에 저장된 변수는 사용자가 응용 프로그램에서 페이지 사이를 이동할 때 버려지지 않습니다. 대신 이들 변수는 전체 사용자 세션 동안 지속됩니다.

응용 프로그램에서 아직 세션을 가지고 있지 않은 사용자가 웹 페이지를 요청하면 웹 서버는 자동으로 Session 개체를 작성합니다. 서버는 세션이 만료되거나 중단될 때 Session 개체를 없앱니다.

Session 개체는 일반적으로 사용자 기본 설정을 저장하는 데 사용됩니다. 예를 들어, 사용자가 그래픽을 보지 않으려 하면 이 정보를 Session 개체에 저장할 수 있습니다. Session 개체 사용에 대한 자세한 내용은 ASP 응용 프로그램 섹션의 세션 관리를 참조하십시오.

참고   세션 상태는 쿠키를 지원하는 브라우저에서만 유지됩니다.

구문

Session.collection|property|method

컬렉션

Contents 스크립트 명령으로 세션에 추가된 항목을 포함합니다.
StaticObjects <OBJECT> 태그와 지정된 세션 영역으로 작성된 개체를 포함합니다.

속성

CodePage 전체 세션에 있는 내부 개체의 데이터에 대한 코드 페이지를 설정합니다. 코드 페이지는 서버가 다른 언어의 문자를 인코딩하는 방법을 결정합니다.
LCID 전체 세션에 있는 데이터에 대한 LCID를 설정합니다. LCID는 특정 지역의 로케일에 따라 날짜, 시간, 통화 형식이 지정되는 방법을 참조합니다.
SessionID 사용자에 대한 세션 ID를 반환합니다.
Timeout 이 응용 프로그램의 세션 상태에 대한 시간 제한 값(분으로 표시)입니다.

메서드

Abandon 이 메서드는 Session 개체를 없애고 리소스를 해제합니다.
Contents.Remove 이 메서드는 Contents 컬렉션에서 항목을 삭제합니다.
Contents.RemoveAll 이 메서드는 Contents 컬렉션에서 모든 항목을 삭제합니다.

이벤트

아래 이벤트용 스크립트는 Global.asa 파일에서 선언됩니다.

Session_OnEnd
Session_OnStart

이 이벤트와 Global.asa 파일에 대한 자세한 내용은 Global.asa 참조를 참조하십시오.

주의

값을 Session 개체에 저장할 수 있습니다. Session 개체에 저장된 정보는 세션 전체에서 사용할 수 있으며 세션 영역을 가집니다. 다음 스크립트에서는 두 종류의 변수 저장 예를 보여 줍니다.

<% 
Session("username") = "Janine"
Session("age") = 24
%>
 

그러나, 개체를 Session 개체에 저장하고 기본 스크립트 언어로 VBScript를 사용하는 경우에는 Set 키워드를 사용해야 합니다. 다음 스크립트를 참조하십시오.

<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %>
 

후속 웹 페이지에서 MyComponent.class1에 의해 제공된 메서드와 속성을 호출하기 위해 다음 명령을 사용합니다.

<% Session("Obj1").MyMethod %>
 

또는, 개체의 로컬 사본을 추출하는 다음과 같은 명령을 사용합니다.

<% 
Set MyLocalObj1 = Session("Obj1") 
MyLocalObj1.MyObjMethod
%>
 

세션 영역을 가진 개체를 만드는 다른 방법은 Global.asa 파일에서 <OBJECT> 태그를 사용하는 것입니다.

그러나, Session 개체에 기본 제공 개체를 저장할 수는 없습니다. 예를 들어, 아래의 각 줄은 오류를 반환합니다.

<%
Set Session("var1") = Session
Set Session("var2") = Request
Set Session("var3") = Response
Set Session("var4") = Server
Set Session("var5") = Application
%>
 

Session 개체로 개체를 저장하기 전에 이 개체에서 사용하는 스레딩 모델을 알아야 합니다. 이중 스레딩 모델로 표시된 개체만이 단일 스레드에 대한 세션을 잠그지 않고 Session 개체에 저장될 수 있습니다. 자세한 내용은 Platform SDK를 참조하십시오.

Session 개체에 배열을 저장한 경우 저장된 배열의 요소를 직접 바꾸려고 해서는 안됩니다. 예를 들어, 아래 스크립트는 실행되지 않습니다.

<% Session("StoredArray")(3) = "new value" %>
 

그 이유는 Session 개체가 컬렉션으로 구현되었기 때문입니다. StoredArray(3) 배열 요소는 새 값을 받지 않습니다. 대신 값이 컬렉션으로 인덱스되어 그 위치에 저장된 정보를 덮어씁니다.

Session 개체에 배열을 저장하는 경우 배열 요소를 검색하거나 변경하기 전에 배열의 사본을 검색하는 것이 좋습니다. 배열에 대한 작업을 마치면 배열을 Session 개체에 다시 저장하여 변경한 사항이 모두 저장되도록 합니다. 다음 예제를 참조하십시오.

---file1.asp---
<%
'Creating and initializing the array
Dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"
'Storing the array in the Session object.
Session("StoredArray") = MyArray

Response.Redirect("file2.asp")
%>

---file2.asp---
<%
'Retrieving the array from the Session Object
'and modifying its second element.
LocalArray = Session("StoredArray")
LocalArray(1) = " there"

'Printing out the string "hello there."
Response.Write(LocalArray(0)&LocalArray(1))
'Re-storing the array in the Session object.
'This overwrites the values in StoredArray with the new values.
Session("StoredArray") = LocalArray
%>
 

예제

아래 코드는 세션 변수 name에 문자열 MyName을, 세션 변수 year에 값을, myObj 변수에 some.Obj 구성 요소의 인스턴스를 할당합니다.

Session("name") = "MyName" 
Session("year") = 96 
Set Session("myObj") = Server.CreateObject("someObj") 
 %> 
 

자세한 내용은 세션 관리를 참조하십시오.


© 1997-2001 Microsoft Corporation. All rights reserved.