ASP 세션



Session 개체는 사용자 세션(세션)에 대한 정보를 저장하거나 사용자 세션(세션)의 설정을 변경하는 데 사용됩니다.


세션 개체

컴퓨터에서 응용 프로그램 작업을 할 때 응용 프로그램을 열고 변경한 다음 닫습니다. 그것은 대화와 매우 흡사합니다. 컴퓨터는 당신이 누구인지 알고 있습니다. 언제 앱을 열고 닫는지 알 수 있습니다. 그러나 인터넷에서는 문제가 발생합니다. HTTP 주소는 상태를 유지할 수 없기 때문에 웹 서버는 귀하가 누구인지, 무엇을 하는지 전혀 모릅니다.

ASP는 각 사용자에 대해 고유한 쿠키를 생성하여 이 문제를 해결합니다. 쿠키는 사용자의 컴퓨터로 전송되며 사용자를 식별하는 정보를 포함합니다. 이 인터페이스를 세션 개체라고 합니다.

Session 개체는 사용자 세션(세션)에 대한 정보를 저장하거나 사용자 세션(세션)의 설정을 변경하는 데 사용됩니다.

세션 객체에 저장된 변수는 단일 사용자에 대한 정보를 저장하며 애플리케이션의 모든 페이지에서 사용할 수 있습니다. 세션 변수에 저장되는 공통 정보는 일반적으로 이름, ID, 매개변수입니다. 서버는 각각의 새로운 사용자에 대해 새 세션을 생성하고 세션이 만료되면 세션 개체를 취소합니다.


세션은 언제 시작하나요?

세션 시작 시기:

  • 새 사용자가 ASP 파일을 요청하고 Global.asa 파일이 Session_OnStart 서브루틴을 참조합니다.

  • 특정 값이 세션 변수에 저장됩니다

  • 사용자가 ASP 파일이 생성되고 Global.asa는 <object> 태그를 사용하여 세션 범위를 통해 개체를 인스턴스화합니다


세션은 언제 끝나나요?

사용자가 지정된 시간 내에 애플리케이션에서 페이지를 요청하거나 새로 고치지 않으면 세션이 종료됩니다. 기본값은 20분입니다.

시간 초과 간격을 기본값보다 짧게 또는 길게 설정하려면 Timeout 속성을 사용할 수 있습니다.

다음 예에서는 시간 초과 간격을 5분으로 설정합니다.

<%
Session.Timeout=5
%>

세션을 즉시 종료하려면 Abandon 메서드를 사용하세요.

< ; %
Session.Abandon
%>

참고: 세션을 사용할 때 가장 중요한 문제는 언제 종료되어야 하는지입니다. 사용자의 가장 최근 요청이 마지막 요청인지는 알 수 없습니다. 그래서 우리는 세션을 얼마나 오랫동안 "라이브"해야 할지 모릅니다. 유휴 세션을 너무 오래 기다리면 서버 리소스가 고갈될 수 있습니다. 그러나 세션이 조기에 삭제되면 서버가 모든 정보를 삭제했기 때문에 사용자는 계속해서 다시 시작해야 합니다. 올바른 시간 초과 간격을 찾는 것이 어려울 수 있습니다!

lamp.gif팁: 세션 변수에는 소량의 데이터만 저장하세요!


세션 변수 저장 및 검색

세션 개체의 가장 큰 장점은 이후의 웹 페이지 읽기를 위해 변수를 저장할 수 있고 적용 범위가 매우 넓다는 것입니다.

다음 예에서는 "Donald Duck"을 username이라는 세션 변수에 할당하고 age라는 세션 변수에 "50"을 할당합니다.

<%
Session("username") ="Donald Duck "
Session("age")=50
%>

값이 세션 변수에 저장되면 ASP 애플리케이션의 모든 페이지에서 사용할 수 있습니다.

Welcome <% Response.Write( Session("username"))%>

위 코드 줄에서 반환된 결과는 "Welcome Donald Duck"입니다.

세션 개체에 사용자 매개변수를 저장한 다음 이러한 매개변수에 액세스하여 사용자에게 반환할 페이지를 결정할 수도 있습니다.

다음 예에서는 사용자가 낮은 모니터 해상도를 사용하는 경우 페이지의 일반 텍스트 버전이 반환된다고 규정합니다.

<%If Session("screenres")="low" Then%>
This 페이지의 텍스트 버전입니다
<%Else%>
페이지의 멀티미디어 버전입니다
<%End If%>


세션 변수 제거

콘텐츠 컬렉션에는 모든 세션 변수가 포함되어 있습니다. .

세션 변수는 Remove 메소드를 통해 제거할 수 있습니다.

다음 예에서는 세션 변수 "age"의 값이 18보다 작으면 세션 변수 "sale"이 제거됩니다.

<%
If Session.Contents("age")<18 then
Session .Contents.Remove("sale")
End If
%>

세션의 모든 변수를 제거하려면 RemoveAll 메서드를 사용하세요:

<%
Session.Contents.RemoveAll()
% >


Contents 컬렉션 탐색

Contents 컬렉션에는 모든 세션 변수가 포함되어 있습니다. 다음과 같이 반복하여 Contents 컬렉션에 저장된 변수를 볼 수 있습니다.

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
Response.Write(i & "<br>")
Next
%>

결과:

username
age

항목 수를 모르는 경우 콘텐츠 컬렉션을 사용하면 Count 속성을 사용할 수 있습니다.

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("세션 변수: " & j)
For i=1 to j
Response.Write(Session .Contents(i) & "<br>")
Next
%>

결과:

세션 변수: 2
Donald Duck
50


정적 개체 탐색 collection

StaticObjects 컬렉션을 반복하여 Session 객체에 저장된 모든 객체의 값을 볼 수 있습니다:

<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "< ;br>")
다음
%>