>백엔드 개발 >C#.Net 튜토리얼 >ASP 세션에 대한 자세한 소개

ASP 세션에 대한 자세한 소개

Y2J
Y2J원래의
2017-05-18 11:42:212128검색

세션 개체는 사용자 정보를 저장하는 데 사용됩니다. 세션 객체에 저장된 변수는 단일 사용자에 대한 정보를 보유하며 애플리케이션의 모든 페이지에서 사용할 수 있습니다.

세션 개체

애플리케이션 작업을 할 때 애플리케이션을 열고 변경한 다음 닫습니다. 그것은 대화와 매우 흡사합니다. 컴퓨터는 당신이 누구인지 알고 있습니다. 언제 앱을 열고 닫는지 알 수 있습니다. 하지만 인터넷에는 문제가 있습니다. HTTP 주소는 상태를 유지할 수 없기 때문에 웹 서버는 사용자가 누구인지, 무엇을 하는지 알 수 없습니다.

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

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

세션은 언제 시작하나요?

세션 시작 위치:

*새 사용자가 ASP 파일을 요청하고 Global.asa 파일 Session_OnStart 서브루틴을 참조하는 경우

*세션 변수에 값이 저장되는 경우

*사용자가 ASP 파일을 요청하고 Global.asa가 세션 범위를 통해 이를 인스턴스화하는 경우; 🎜>

세션은 언제 종료되나요?

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

타임아웃 간격을 더 길거나 짧게 설정하려면 타임아웃

속성을 설정하면 됩니다.

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

<%
Session.Timeout=5
%>

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

<%
Session.Abandon
%>

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

: 세션 변수를 사용하는 경우 많은 양의 데이터를 저장하지 마세요.

세션 변수 저장 및 검색

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

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

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

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

Welcome 9191e841d6c4ef7e6a651b7bd17ba29e


위의 내용은 프로그램에서 반환된 결과는 "Welcome Donald Duck"입니다.

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

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

<%If Session("screenres")="low" Then%> 
  This is the text version of the page
<%Else%> 
  This is the multimedia version of the page
<%End If%>

移除 session 变量

contents 集合包含所有的 session 变量。

可通过 remove 方法来移除 session 变量。

在下面的例子中,假如 session 变量 "age" 的值小于 18,则移除 session 变量 "sale":

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

如需移除 session 中的所有变量,请使用 RemoveAll 方法:

<%
Session.Contents.RemoveAll()
%>

遍历 contents 集合

contents 集合包含所有的 session 变量。可通过遍历 contents 集合,来查看其中存储的变量:

<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
  Response.Write(i & "<br />")
Next
%>

结果:

username
age

如果需要了解 contents 集合中的项目数量,可使用 count 属性:

<%
dim i
dim j
j=Session.Contents.CountResponse.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br />")
Next
%>

结果:

Session variables: 2
Donald Duck
50

遍历 StaticObjects 集合

可通过循环 StaticObjects 集合,来查看存储在 session 对象中所有对象的值:

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

【相关推荐】

1.  ASP免费视频教程

2. 教你解决ASP session丢失的方法

3. 介绍ASP中Session对象的三种方法

4. 详解ASP中Session的使用技巧

5. ASP session简单示例

위 내용은 ASP 세션에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.