회원등록 비번분실

작성자 ASP
작성일 2003-02-26 (수) 16:13
첨부#1 session.asp (1KB) (Down:39)
ㆍ추천: 0  ㆍ조회: 7270      
IP:
ASP 내장객체 (Session Object)
ASP내장객체 (Session Object)

Session 개체

 


어플리케이션 개체가 전체의 사이트를 지배하며, 어플리케이션 변수는 누구나 수정할 수 있는 공개적인 전역변수라고 한다면, 세션은 사용자 개개인에게 각각 할당되는 것이며, 세션변수는 전역변수이기는 하지만 아무나 함부로 고칠 수 없는 아주 개인적인 것이라 생각하면 된다.

 

Property (속성)

 

SessionID 사용자마다 갖게 되는 고유한 세션값
TimeOut 세션이 유지되는 시간
Method (메소드)

 

Abandon 강제로 세션을 소멸시키는 메소드
Event (이벤트)  
OnStart 각각의 사용자가 처음 방문할 때 발생
OnEnd 사용자의 세션이 끝나는 시점에 발생

 


Session("count")=1 이란 형식을 사용하는데 어플리케이션과 비슷하다 다만 이 세션변수는 세션을 가진 자신만이 이 값을 바꿀 수가 있다는 것이다. 다음 예제를 통해 직접 확인해 보자.

 

 예제) (Session.asp)

 

<%

Application.Lock

Application("check")=Application("check")+1

Application.UnLock

 

Session("check")=Session("check")+1

%>

 


어플리케이션과 세션비교

 

현재의 Application("check")의 값 : <%=Application("check")%>

현재의 Session("check")의 값 : <%=Session("check")%>

 

 

 결과)

 

Session에 대한 결과는 여러대의 컴에서 접속하거나 웹 브라우저를 새로 띄워 확인해야 그 변화를 할 수 있다. 우선 위 문서를 작성한뒤 파일을 띄워 보자. 그리고 새로고침을 해 보자.

어플리케이션과 세션의 값이 똑같이 증가함을 알 수 있다. 그런 다음 다시 새창을 띄워 숫자를 확인하고 똑같은 방법으로 반복해서 숫자의 변화를 살펴보면 알 수 있다.

 


 

앞에서 보듯이 세션은 쿠키의 일종이라 생각하면 된다. 하지만 쿠키와 다른 점은 쿠키가 클라이언트에 저장되는 반면 세션값은 서버에 저장된다고 생각하자. 세션의 다른 사용법은 다음과 같이 이용되기도 한다.

 

<% Session.TimeOut=10 %>

 

이것은 세션의 유지시간이 10분으로 세팅됨을 말한다. 원한다면 적절하게 유지시간을 조설할 수 있다.

또한 강제로 세션을 끝내고 싶다면

 

<% Session.Abandon %>

 

이렇게 지정해 주면 된다. 주의할 것은 Abandon 메소드는 방문자의 모든 세션변수의 값을 다 날린다는 것이다. 한 사용자가 여러개의 세션변수를 가지고 있을 경우 그 값들을 다 날린다는 것이다. 즉 Session("count")라는 변수와 Session("name")이라는 두 개의 세션변수를 가지고 있다고 가정했을 때 "Session("count").Abandon"이라고 써서 하나의 세션변수의 값을 날릴 수는 없다는 것이다. 모두 날라가거나 모든 유지되는 것 둘 중의 하나라는 것이다.

 

 

  0
3500