ASP Session Object

Programming/ASP 2008. 1. 16. 16:27
The Session object

어플리케이션에서 작업을 할 때, 어플을 열고, 어떤 작업을 하고, 어플을 닫는데, 세션도 이와 같다.
사용자가 어플을 시작하고 닫을 때, 컴퓨터는 사용자가 누구인지 안다.
그러나 인터넷에서 한 가지 문제가 있다
: HTTP 주소는 유지 상태가 아니기 때문에 웹 서버는 사용자가 누구인지 무엇을 할 지 모른다.

ASP는 각 사용자에게 고유한 쿠키를 생성함으로써 이 문제를 해결한다.
쿠키가 클라이언트에 보내지고 쿠키는 사용자를 인증하는 정보를 담고 있다.
이 인터페이스는 세션 객체라 불린다.

세션 객체는 사용자 세션에 대한 설정을 바꾸거나 세션에 관한 정보를 저장하는데 사용된다.
세션 객체에 저장된 변수들은 한 사용자에 관한 정보를 유지하고, 어플리케이션에서 모든 페이지에 이용 가능하다.
세션 변수들에 저장된 일반 정보들은 이름, 아이디, 등이다.
서버는 각 새로운 사용자에게 새로운 세션 객체를 생성하고, 세션 만료시 세션 객체를 파괴한다.


When does a Session Start?

그새로운 사용자는 ASP 파일을 요청하고, Global.asa 파일은 Session_OnStart 프로시저를 포함한다.
값은 세션 변수에 저장된다.
사용자가 ASP 파일에 요청하고, Global.asa 파일은 세션 유효 범위로 객체를 증명하기 위해 <object> 태그를 사용한다.


When does a Session End?

사용자가 요청하지 않거나, 특정 기간에 대해 페이지를 새로고침 하지 않으면 세션은 만료된다. 기본은 20분이다.
기본 시간보다 더 짧거나 길게 시간 조정을 하길 원한다면, Timeout 속성을 지정할 수 있다.

5분의 시간 간격을 지정하는 예
<%
Session.Timeout = 5
%>

세션을 즉시 끝내려면 Abandon 메소드를 사용
<%
Session.Abandon
%>


Store and Retrieve Session Variables

세션 객체에서 가장 중요한 것은 세션에 변수를 저장할 수 있다는 것이다.
세션 변수 username 과 age 에 값을 지정하는 예
<%
Session("username") = "oops"
Session("age") = 18
%>

세션 변수에 값이 저장되어질 때 ASP 어플의 어느 페이지에서도 이용 가능하다.
Welcome <%Response.Write(Session("username"))%>


Remove Session Variables

Contents 컬렉션은 모든 세션 변수들을 담고 있다.
Remove 메소드로 세션 변수를 제거하는 것이 가능하다.
세션 변수 age 값이 18보다 작으면 세션 변수 sale 를 제거하는 예
<%
If Session.Contents("age") < 18 then
  Session.Contents.Remove("sale")
End If
%>

모든 세션 변수를 제거하려면 RemoveAll 메소드를 사용한다.
<%
Session.Contents.RemoveAll()
%>


Loop Through the Contents Collection

Contents 컬렉션에 저장된 것들을 보기위해 반복 명령을 실행하는 예
<%
Session("username") = "oops"
Session("age") = 18
dim i
For Each i in Session.Contents
  Response.Write(i & "<br />")
Next
%>

Contents 컬렉션에 저장된 아이템 수를 모른다면 Count 속성을 사용할 수 있다.
<%
dim i
dim j
j = Session.Contents.Count
Response.Write("Session variables: " & j)
For i = 1 to j
  Response.Write(Session.Contents(i) & "<br />")
Next
%>


Loop Through the StaticObjects Collection

세션 객체에 저장된 모든 객체의 값을 보려면 StaticObjects 컬렉션을 반복시킬 수 있다.
<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br />")
Next
%>


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  2개가 달렸습니다.
  1. 박승모 2009.07.22 13:28
    ㅎㅎㅎ 요즘 asp를 하고 있는데.. 정보 찾다보니 여기까지 왔네.. 잘지내는겨??

    시간되면 연락도하고 그래야는데..

    잘지내시고.. 바바..
  2. 푸핫! 허접한거 밖에 없어서 면목이... 결국 asp까지 하시는군요 ㅎㅎㅎ
    맨날 먼저 연락하시고, 반성반성.. ㅜㅜ
secret