Application 개체
Application 개체는 모든 사용자 간에 정보를 공유하고 웹 응용 프로그램이 실행되는 동안 데이터를 유지하는 데 사용되는 응용 프로그램 수준 개체입니다.
응용 프로그램 속성:
방법은 다음과 같습니다.
Application 개체에는 기본 제공 속성이 없지만 자체 속성을 만들 수 있습니다.
<% 응용 프로그램("속성 이름")=값%>
실제로 대부분의 Application 변수는 Contents 컬렉션에 저장됩니다. 새 Application 변수를 생성하면 실제로 Contents 컬렉션에 항목이 추가됩니다. 다음 두 스크립트는 동일합니다.
<% Application("greeting")="hello!" %> 또는 <% Application.contents("greeting")="hello!" 애플리케이션 변수가 컬렉션에 존재하므로 모두 표시하려면 For Each 루프와 같은 여러 메서드를 사용합니다.
<%
Application.Contents의 각 항목에 대해
Response.write("<br>"&항목&Application.Contents(항목))
다음
%>
신청 방법:
응용 프로그램에는 두 가지 방법만 있습니다. 하나는 잠금이고 다른 하나는 잠금 해제입니다. 잠금 방법은 한 명의 사용자만 동시에 애플리케이션을 작동할 수 있도록 하는 데 사용됩니다. Unlock은 Lock 메서드의 제한을 취소하는 데 사용됩니다. 좋다:
<%
응용프로그램.잠금
신청("visitor_num")=신청("visitor_num")+1
응용 프로그램.잠금 해제
%>
애플리케이션 이벤트:
1.Application_OnStart()
이벤트 애플리케이션이 시작되면 시작됩니다.
2. 애플리케이션_온엔드()
이 이벤트는 애플리케이션이 종료되면 시작됩니다.
이 두 이벤트 프로세스는 Global.asp 파일에 정의되어야 합니다. 일반적으로 데이터를 연결하는 기능은 이 두 이벤트에 정의된 다음 Global.asp에 배치됩니다. 예를 들어:
하위 애플리케이션_OnStart
Application("tt18_ConnectionString") = "드라이버={SQL
서버};서버=jeff;uid=sa;pwd=;데이터베이스=테스트"
서브 끝
배열은 Application 개체로 정의할 수 있지만 이 배열은 개체로만 저장할 수 있으며 해당 값은 Application(0)을 사용하여 검색할 수 없습니다. 이 기능을 수행하기 위해 임시 배열을 정의할 수 있습니다. 좋다:
<%
희미한 배열()
배열=응용프로그램("배열")
i = 0에서 ubound(배열)로
응답.쓰기 배열(i)
다음은 내가
%>
Application 개체를 수정하려면 임시 배열을 정의하고, Application 개체를 배열에 할당한 다음, 배열 요소를 수정하고, 마지막으로 배열을 다시 Application 개체에 할당할 수도 있습니다. 좋다:
<%
희미한 배열()
배열=응용프로그램("배열")
배열(0)="제프"
배열(1)="주"
애플리케이션.잠금
응용프로그램("배열")=배열
응용 프로그램.잠금 해제
%>
ObjectContext 개체
이 개체는 Active Server Pages의 트랜잭션 처리를 제어하는 데 사용됩니다. 트랜잭션 처리는 MTS(Microsoft Transaction Server)에서 관리됩니다.
ObjectContext.OnTransactionAbort
이벤트는
중단된 트랜잭션 이벤트에 의해 시작되며 스크립트 처리가 완료된 후에 발생합니다.
ObjectContext.OnTransactionCommit
은 성공적인 트랜잭션 이벤트에 의해 트리거되고 스크립트 처리가 완료된 후에 발생합니다.
ObjectContext.SetAbort
메서드는
트랜잭션을 명시적으로 중단합니다.
ObjectContext.SetComplete는
ObjectContext.SetAbort 메서드에 대한 이전 호출을 재정의합니다.
요청 객체
Request 객체는 브라우저에서 서버로 전송된 모든 요청의 모든 정보를 수락하는 데 사용됩니다.
Collection
Request.ClientCertificate(key[SubField])
모든 클라이언트 인증서에 대한 정보 모음입니다. Key의 경우 컬렉션에는 다음과 같은 키워드가 있습니다
.
인증서의 제목입니다. 인증서 영수증에 대한 모든 정보가 포함되어 있습니다. 모든 하위 도메인 접미사와 함께 사용할 수 있습니다.
발급자
인증서 발급자입니다. 인증서 확인에 대한 모든 정보가 포함되어 있습니다. CN을 제외한 모든 하위 도메인 접미사와 함께 사용할 수 있습니다.
VadidFrom
인증서가 발급된 날짜입니다. VBScript 형식을 사용하십시오.
유효기간
인증서가 더 이상 유효하지 않습니다.
일련번호
인증서의 일련번호가 포함되어 있습니다.
자격증
ASN.1 형식을 사용하여 전체 인증서 내용을 포함하는 바이너리 스트림입니다.
SubField의 경우 제목 및 발급자 키워드에는 다음과 같은 하위 도메인 접미사가 있을 수 있습니다. (예: SubjectOU 또는 IssuerL)
C
원산지.
영형
회사 또는 조직 이름.
OU
조직 단위.
KO
사용자의 일반 이름입니다.
엘
부분적으로.
에스
주(또는 지방).
티
사람이나 회사의 직함입니다.
GN
주어진 이름.
나
초기의.
cervbs.inc(VBScript에서 사용) 또는 cerjavas.inc(Jscript에서 사용) 파일이 #INCLUDE 지시문을 사용하여 Active Server Page에 포함되면 다음 두 플래그를 사용할 수 있습니다
.
클라이언트 인증서가 존재하는지 여부를 나타내며 해당 값은 TRUE 또는 FALSE입니다.
ce인식되지 않은 문제
목록의 마지막 인증서 발급자를 알 수 없는지 여부를 나타내며 해당 값은 TRUE 또는 FALSE입니다.
Request.Cookies(Cookie[(key).Attribute])
쿠키 모음입니다. 브라우저 쿠키를 얻을 수 있도록 허용합니다. 쿠키는 반환할 쿠키를 나타냅니다. Key는 Cookie 사전의 특정 키워드로 Cookie 값을 반환하는 데 사용됩니다. 속성의 경우 HasKeys 속성을 사용하여 쿠키에 하위 키가 있는지 확인할 수 있습니다. HasKeys의 값은 TRUE 또는 FALSE입니다.
Request.Form(Parameter)[(Index).Count]는
HTML 형식의 모든 데이터 컬렉션을 채웁니다. 매개변수는 HTML 양식의 요소 이름입니다. 인덱스는 매개변수에 둘 이상의 값이 있을 때 사용됩니다(예: <SELECT>에서 MULTIPLE 속성을 사용하는 경우). 매개변수에 여러 값이 있는 경우 Count는 여러 값의 수를 지정합니다.
Request.QueryString(Varible)[(Index).Count]
쿼리 문자열의 모든 값의 모음입니다. 변수는 쿼리 문자열에 있는 변수의 이름입니다. 인덱스는 변수에 둘 이상의 값이 있을 때 사용됩니다. 매개변수에 여러 값이 있는 경우 Count는 값 수를 지정합니다.
Request.ServerVaribles(서버 환경 변수)
환경 변수 모음입니다. HTTP 헤더 읽기를 허용합니다. HTTP_ 접두사를 사용하면 헤더 정보를 읽을 수 있습니다. 예를 들어 HTTP_USER_AGENT는 클라이언트-에이전트 HTTP 헤더(브라우저 유형)를 허용합니다. 그렇지 않으면 아래 표에 표시된 변수를 사용하여 환경 정보를 얻을 수 있습니다.
ALL_HTTP
클라이언트가 보낸 모든 HTTP 헤더와 그 결과에는 HTTP_라는 접두사가 붙습니다.
모두_RAW
클라이언트가 보낸 모든 HTTP 헤더는 접두사 HTTP_APPL_MD_PATH 없이 클라이언트가 보낸 것과 동일한 결과를 갖습니다
.
응용 프로그램의 메타베이스 경로입니다.
APPL_PHYSICAL_PATH
애플리케이션 메타베이스 경로에 해당하는 물리적 경로입니다.
AUTH_PASSWORD
기본 인증 모드 사용 시 고객이 비밀번호 대화 상자에 입력한 비밀번호입니다.
AUTH_TYPE
이는 사용자가 보호된 스크립트에 액세스할 때 사용자를 확인하기 위해 서버에서 사용하는 인증 방법입니다.
AUTH_USER
확인을 위한 사용자 이름입니다.
CERT_COOKIE
고유한 클라이언트 인증서 ID 번호입니다.
CERT_FLAG
클라이언트 인증서 플래그입니다. 클라이언트 인증서가 있는 경우 bit0은 0입니다. 클라이언트 인증서 확인이 유효하지 않은 경우 bit1이 1로 설정됩니다.
CERT_ISSUER
사용자 인증서의 발급자 필드입니다.
CERT_KEYSIZE
SSL(Secure Socket Layer) 연결 키워드의 비트 수입니다(예: 128).
CERT_SECRETKEYSIZE
서버가 확인하는 개인 키의 자릿수입니다. 1024와 같은.
CERT_SERIALNUMBER
클라이언트 인증서의 일련번호 필드입니다.
CERT_SERVER_ISSUER
서버 인증서
CERT_SERVER_SUBJECT
의 발급자 필드
서버 인증서의 제목 필드입니다.
CERT_SUBJECT
클라이언트 인증서의 제목 필드입니다.
CONTENT_LENGTH
클라이언트가 보낸 콘텐츠의 길이입니다.
CONTENT_TYPE
고객이 보낸 양식 내용 또는 HTTP PUT의 데이터 유형입니다.
GATEWAY_INTERFACE
서버에서 사용하는 게이트웨이 인터페이스입니다.
HTTPS
요청이 보안 채널(SSL)을 통해 진행된 경우 ON을 반환합니다. 요청이 비보안 채널에서 오는 경우 OFF를 반환합니다.
HTTPS_KEYSIZE
SSL(Secure Socket Layer) 연결 키워드의 비트 수입니다(예: 128).
HTTPS_SECRETKEYSIZE
서버가 확인하는 개인 키의 자릿수입니다. 1024와 같은.
HTTPS_SERVER_ISSUER
서버 인증서의 발급자 필드입니다.
HTTPS_SERVER_SUBJECT
서버 인증서의 제목 필드입니다.
INSTANCE_ID
IIS 인스턴스의 ID 번호입니다.
INSTANCE_META_PATH
요청에 응답한 IIS 인스턴스의 메타베이스 경로입니다.
LOCAL_ADDR
요청을 수락한 서버의 주소를 반환합니다.
LOGON_USER
PATH_INFO
계정으로 Windows NT에 로그인합니다.
클라이언트가 제공하는 경로 정보입니다.
PATH_TRANSLATED
가상에서 물리적으로 매핑하여 얻은 경로입니다.
QUERY_STRING
쿼리 문자열 내용.
REMOTE_ADDR
요청을 하는 원격 호스트의 IP 주소입니다.
REMOTE_HOST
요청이 이루어진 원격 호스트의 이름입니다.
REQUEST_METHOD
요청 방법. GET, HEAD, POST 등과 같은
SCRIPT_NAME
실행된 스크립트의 이름입니다.
SERVER_NAME
서버의 호스트 이름, DNS 주소 또는 IP 주소입니다.
SERVER_PORT
요청을 수락하는 서버 포트 번호입니다.
SERVER_PORT_SECURE
요청을 수락하는 서버 포트가 보안 포트이면 1이고, 그렇지 않으면 0입니다.
SERVER_PROTOCOL
서버에서 사용하는 프로토콜의 이름과 버전입니다.
서버_소프트웨어
요청에 응답하고 게이트웨이를 실행하는 서버 소프트웨어의 이름과 버전입니다.
URL
URL의 기본 부분을 제공하세요.
Request.BinaryRead(Count)
메서드는
HTML 양식의 처리되지 않은 콘텐츠를 받습니다. 이 메서드가 호출되면 Count는 수신할 바이트 수를 나타냅니다. 이 메서드를 호출한 후 Count는 실제로 수신된 바이트 수를 나타냅니다.
속성
Request.TotalBytes
쿼리 본문의 길이(바이트)입니다.
Response 객체
Response 객체는 클라이언트 브라우저에 데이터를 보내는 데 사용됩니다. 사용자는 이 객체를 사용하여 HTML 형식으로 서버 데이터를 클라이언트 브라우저에 보낼 수 있습니다. 이 객체와 Request는 데이터 수신 및 전송을 위한 객체 쌍을 형성합니다. 역동성을 달성하기 위한 기반. 일반적으로 사용되는 속성과 메서드는 다음과 같습니다.
1. 버퍼 속성 이 속성은 페이지 출력 시 버퍼 사용 여부를 지정하는 데 사용됩니다. 기본값은 False입니다. True이면 전체 Active Server Page가 실행될 때까지 결과가 브라우저에 출력되지 않습니다. 좋다:
<%Response.Buffer=참%>
<html>
<머리>
<title>버퍼 예시</title>
</head>
<본문>
<%
i=1 ~ 500의 경우
response.write(i & "<br>")
다음
%>
</body>
</html>
이 페이지가 실행되면 전체 홈페이지의 모든 내용이 동시에 브라우저에 표시되며, 해당 홈페이지는 스크립트 실행이 완료될 때까지 캐시에 저장됩니다.
2. Expires 속성 이 속성은 브라우저가 페이지를 캐시하고 서버 측에서 새로 고쳐야 하는 시간(분)을 설정하는 데 사용됩니다. 다음 설정을 사용합니다.
<%응답.만료=0%>
이 코드 줄을 ASP 파일에 추가하면 페이지를 새로 고치는 데 각 요청이 필요합니다. 응답을 받는 즉시 페이지가 만료되기 때문입니다.
3. 쓰기 방법 이 방법은 다음과 같은 데이터를 클라이언트 브라우저로 보냅니다.
<%Response.write "Hello,world!"%>
4. 리디렉션 방법 이 방법을 사용하면 클라이언트가 웹 요청을 하면 클라이언트의 브라우저 유형을 결정하고 해당 페이지로 클라이언트를 재배치합니다. 좋다:
<html>
<머리>
<title>리디렉션 예시</title>
</head>
<본문>
<form aciton="formjump.asp" method="post">
<이름 선택="어디로 이동">
<option selected value="재미">재미</option>
<option value="news">뉴스</option>
<option value="sample">샘플</option>
</select>
<입력 유형=제출 이름="점프" 값="점프">
</form>
</body>
</html>
위는 제출된 양식이고, 다음은 해당 양식을 처리하는 파일 formjump.asp이다.
<%response.buff=true%>
<html>
<머리>
<title>리디렉션 예시</title>
</head>
<본문>
<%
thisurl=" http://www.tinyu.com/ ";
where=Request.form("어디로 이동")
다음과 같은 경우를 선택하세요.
케이스 "재미있다"
response.redirect thisurl & "/fun/default.asp"
사례 "뉴스"
response.redirect thisurl & "/news/default.asp"
케이스 "샘플"
response.redirect thisurl & "/sample/default.asp"
선택 종료
%>
</body>
<html>
이 예에서는 사용자가 선택을 하면 "Jump" 버튼을 눌러 양식을 제출한 후 서버가 formjump.asp를 호출하여 해당 URL을 확인하고 찾습니다. 그러나 여기서 주의할 점은 HTTP 헤더가 클라이언트 브라우저에 기록되었다는 것입니다. 이 문제가 발생하면 다음을 수행할 수 있습니다.
<@ Language=..> 뒤의 파일 시작 부분에 다음을 작성하십시오.
응답.버퍼=참
마지막에 결정하세요:
응답.플러시
여기서 Flush는 Response의 메서드로, Buffer 속성이 True로 설정된 경우에만 사용할 수 있습니다. 그렇지 않으면 실행 모드 오류가 생성됩니다. 캐시된 페이지를 지우는 데에도 다른 Clear 메서드가 사용됩니다. 이 메서드는 Buffer 속성이 True로 설정된 경우에도 사용할 수 있습니다.
5. 종료 방법 이 방법은 이 방법을 만나면 ASP 파일 처리를 중지하도록 Active Server에 지시하는 데 사용됩니다. Response 개체의 Buffer 속성이 True로 설정된 경우 End 메서드는 캐시 내용을 클라이언트에 보내고 버퍼를 지웁니다. 따라서 클라이언트에 대한 모든 출력을 취소하려면 먼저 버퍼를 지운 다음 End 메서드를 사용하면 됩니다. 좋다:
<%
응답.버퍼=true
오류 발생 시 다음 재개
Err.clear
Err.number<>0이면
응답.지우기
응답.종료
종료하면
%>
서버 개체:
서버 개체는 서버의 메서드 및 속성에 대한 액세스를 제공합니다. 이러한 메서드와 속성의 대부분은 유틸리티 함수로 사용됩니다.
구문
Server.property|메서드
속성
ScriptTimeout:
ScriptTimeout 속성은 스크립트가 끝나기 전에 실행할 수 있는 최대 시간을 지정합니다. 서버 구성요소로 작업할 때 시간 초과 제한은 더 이상 적용되지 않습니다.
구문 Server.ScriptTimeout = NumSeconds
매개변수 NumSeconds
서버에 의해 종료되기 전에 스크립트가 실행될 수 있는 최대 시간(초)을 지정합니다. 기본값은 90초입니다.
참고 메타베이스의 AspScriptTimeout 속성을 사용하여 웹 서비스나 웹 서버에 대한 기본 ScriptTimeout 값을 설정할 수 있습니다. ScriptTimeout 속성은 메타베이스에 지정된 값보다 작게 설정할 수 없습니다. 예를 들어 NumSeconds가 10으로 설정되고 메타베이스 설정에 기본값인 90초가 포함되어 있으면 스크립트는 90초 후에 시간 초과됩니다. 그러나 NumSeconds를 100으로 설정하면 100초 후에 스크립트 시간이 초과됩니다.
메타베이스 사용에 대한 자세한 내용은 메타베이스 정보를 참조하세요.
예 다음 예에서는 서버가 스크립트를 처리하는 데 100초 이상 걸리는 경우 시간 초과됩니다.
<% Server.ScriptTimeout = 100 %>
다음 예제에서는 ScriptTimeout 속성의 현재 값을 가져와서 TimeOut 변수에 저장합니다.
<% TimeOut = Server.ScriptTimeout %>
메서드
CreateObject
CreateObject 메서드는 서버 구성 요소의 인스턴스를 만듭니다. 구성 요소가 OnStartPage 및 OnEndPage 메서드를 실행하는 경우 이때 OnStartPage 메서드가 호출됩니다. 서버 구성 요소에 대한 자세한 내용은 설치 가능한 ASP 구성 요소를 참조하세요.
구문 Server.CreateObject( progID )
매개변수 progID는 생성될 개체의 유형을 지정합니다. progID의 형식은 [Vendor.] 컴포넌트[.Version]입니다.
참고 기본적으로 Server.CreateObject 메서드로 생성된 개체에는 페이지 범위가 있습니다. 즉, 현재 ASP 페이지가 처리된 후 서버가 이러한 개체를 자동으로 삭제합니다. 세션 또는 애플리케이션 범위 개체를 생성하려면 <OBJECT> 태그를 사용하고 SESSION 또는 APPLICATION의 SCOPE 속성을 설정하거나 개체를 세션 및 애플리케이션 변수에 저장할 수 있습니다.
예를 들어 아래 스크립트에서는 Session 개체가 소멸되는 경우, 즉 대화 시간이 초과되거나 Abandon 메서드가 호출되는 경우 세션 변수에 저장된 개체도 소멸됩니다.
<% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>
아래와 같이 변수를 Nothing 또는 새 값으로 설정하여 개체를 삭제할 수 있습니다. 첫 번째 예에서는 광고 개체를 해제하고, 두 번째 예에서는 광고를 문자열로 바꿉니다.
<% 세션("광고") = 없음 %>
<% 세션 ("ad") = " 기타 값 " %>
내장 객체와 이름이 같은 객체 인스턴스는 생성할 수 없습니다. 예를 들어 다음 스크립트는 오류를 반환합니다.
<% Set Response = Server.CreateObject("Response") %>
예 <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
위의 예에서는 MyAd라는 MSWC.AdRotator 서버 구성 요소를 만듭니다. MSWC.AdRotator 구성 요소는 웹 페이지에서 광고를 자동으로 회전하는 데 사용할 수 있습니다.
서버 구성 요소에 대한 자세한 내용은 ASP용 구성 요소 만들기를 참조하십시오.
HTMLEncode HTMLEncode 메서드는 지정된 문자열에 HTML 인코딩을 적용합니다.
구문 Server.HTMLEncode(string)
매개변수 string은 인코딩할 문자열을 지정합니다.
샘플 스크립트 <%= Server.HTMLEncode("문단 태그: <P>") %>
출력 단락 태그: <P>
위 출력은 웹 브라우저에 단락 태그: <P>If로 표시됩니다. 소스 파일을 보거나 텍스트 모드에서 웹 페이지를 열면 인코딩된 HTML을 볼 수 있습니다.
지도 경로
MapPath 메서드는 지정된 상대 경로 또는 가상 경로를 서버의 해당 실제 디렉터리에 매핑합니다.
문법
Server.MapPath(경로)
매개변수
길
매핑할 물리적 디렉터리에 대한 상대 경로 또는 가상 경로를 지정합니다. Path가 슬래시(/) 또는 백슬래시()로 시작하는 경우 MapPath 메서드는 경로를 반환할 때 Path를 완전한 가상 경로로 처리합니다. Path가 슬래시로 시작하지 않으면 MapPath 메서드는 .asp 파일의 기존 경로에 대한 상대 경로를 반환합니다.
논평
MapPath 메서드는 상대 경로 구문(.) 또는 (..)을 지원하지 않습니다. 예를 들어, 다음 상대 경로 ../MyDir/MyFile.txt는 오류를 반환합니다.
MapPath 메서드는 반환된 경로가 올바른지 또는 서버에 존재하는지 확인하지 않습니다.
MapPath 메서드는 지정된 디렉터리의 존재 여부에 관계없이 경로만 매핑하므로 먼저 MapPath 메서드를 사용하여 경로를 실제 디렉터리 구조에 매핑한 다음 이를 서버에 지정된 디렉터리나 파일을 생성하는 구성 요소에 전달할 수 있습니다.
예제 다음 예제에서는 data.txt 파일과 다음 스크립트가 포함된 test.asp 파일이 C:InetpubWwwrootScript 디렉터리에 있습니다. C:InetpubWwwroot 디렉터리는 서버의 홈 디렉터리로 설정됩니다.
다음 예에서는 서버 변수 PATH_INFO를 사용하여 실제 경로를 현재 파일에 매핑합니다. 스크립트
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
출력
c:inetpubwwwrootscripttest.asp<BR>
다음 예의 경로 매개 변수는 슬래시 문자로 시작하지 않기 때문에 상대적으로 현재 디렉터리(이 경우 C:InetpubWwwroot)에 매핑됩니다. 스크립트 . 스크립트
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
출력
c:inetpubwwwrootscriptdata.txt<BR>
c:inetpubwwwrootscriptscriptdata.txt<BR>
다음 두 예에서는 슬래시 문자를 사용하여 반환된 경로가 서버의 전체 가상 경로로 처리되어야 함을 지정합니다. 스크립트
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("script")%><BR>
출력
c:inetpubscriptdata.txt<BR>
c:inetpubscript<BR>
다음 예에서는 슬래시(/) 또는 백슬래시()를 사용하여 호스트 디렉터리의 실제 경로를 반환하는 방법을 보여줍니다. 스크립트
<%= server.mappath("/")%><BR>
<%= server.mappath("")%><BR>
출력
c:inetpubwwwroot<BR>
c:inetpubwwwroot<BR>
URL인코드
URLEncode 메서드는 이스케이프 문자를 포함한 URL 인코딩 규칙을 지정된 문자열에 적용합니다.
문법
서버.URLEncode(문자열)
매개변수
문자열은 인코딩할 문자열을 지정합니다.
샘플 스크립트 <%Response.Write(Server.URLEncode(" http://www.tinyu.com ";)) %>
출력 http%3A%2F%2Fwww%2Etinyu%2Ecom
Session 객체
Session은 실제로 방문자가 특정 홈페이지에 도착한 때부터 떠날 때까지의 시간을 나타냅니다. 각 방문자는 별도의 세션을 받게 됩니다. 웹 애플리케이션에서 사용자가 애플리케이션에 액세스하면 사용자는 세션 유형 변수를 사용하여 웹 애플리케이션의 모든 페이지에서 데이터를 공유할 수 있습니다. 세션. 변수이지만 세션 변수를 통해 두 사용자 간에 정보를 공유할 수는 없지만, 애플리케이션 유형을 변경하면 사이트의 여러 사용자 간에 모든 페이지의 정보를 공유할 수 있습니다.
1. SessionID 속성 이 속성은 현재 세션의 고유 식별자를 반환하고 각 세션에 다른 번호를 할당합니다.
개발 과정에서 사용자 제어 문제에 직면한 적이 있습니다. 달성하려는 기능은 특정 웹사이트의 모듈에 대해 회원이 로그인한 후 이 모듈을 보고 있고 다른 사람이 동일한 회원 이름으로 로그인하면 이 모듈을 탐색할 수 없다는 것입니다. 즉, 하나의 회원 이름을 가진 한 사람만이 동시에 이 모듈을 열람할 수 있습니다. 멤버 이름(UserID, 고유한 것으로 가정)과 SessionID를 사용하여 컨트롤을 구현했습니다. 구성원이 로그인할 때 구성원에게 Session("Status")="Logged"와 같은 로그인 상태를 기록하기 위한 세션을 제공하고 구성원의 Session.SessionID를 데이터베이스에 기록합니다. 이 모듈을 탐색하려면 먼저 로그인되어 있는지 확인합니다. 이미 로그인되어 있는 경우 세션 ID가 데이터베이스에 기록된 것과 동일한지 확인하고 다르면 액세스할 수 없습니다. 이런 방식으로 다른 사용자가 동일한 구성원 이름으로 로그인하면 새로운 SessionID가 데이터베이스에 기록되고 해당 사용자는 이 모듈에 액세스할 때 검사를 통과할 수 없습니다. 이를 통해 하나의 회원 이름을 가진 한 사람만 동시에 특정 모듈을 열람할 수 있습니다. 이 기능은 일부 유료 웹사이트에서 특별한 효과를 발휘하며, 한 회원의 이름이 여러 사람에게 노출되는 문제를 방지하고 회사의 이익을 보호합니다.
2. TimeOut 속성 이 속성은 사용자 Session 객체의 시간 제한을 정의하는 데 사용됩니다. 사용자가 지정된 시간 내에 웹 페이지를 새로 고치지 않으면 Session 개체가 종료됩니다. 일반적인 기본값은 20분입니다.
3. Abandon 방법 이 방법은 Session 개체의 유일한 방법으로 Session 개체를 지울 수 있으며 사용자의 Session 개체를 제거하고 해당 개체가 차지하고 있는 리소스를 해제하는 데 사용됩니다. 예: <% Session.Abandon %>
4. Session_OnStart 및 Session_OnEnd 이벤트는 Application과 동일합니다. Session_OnStart 이벤트는 객체의 루틴이 시작될 때마다 트리거된 후 Session_Onstart 이벤트 처리가 실행됩니다. 즉, 서버가 애플리케이션의 URL에 대한 HTTP 요청을 수신하면 이 이벤트가 트리거되고 Session 객체가 설정됩니다. 동일한 방식으로 이 이벤트도 Global.asa 파일에서 설정되어야 합니다.
Session.Abandon 메서드가 호출되거나 TimeOut 시간 내에 새로 고침이 없으면 Session_OnEnd 이벤트가 트리거된 다음 내부 스크립트가 실행됩니다. 세션 변수는 특정 사용자와 연관되어 있습니다. 특정 사용자에게 할당된 세션 변수는 다른 사용자의 세션 변수와 완전히 독립적이며 서로 영향을 미치지 않습니다.
세션은 다음 열을 적용합니다.
Application과 마찬가지로 Session 유형으로 정의된 배열은 전체 배열을 객체로 처리할 수만 있으며 사용자는 Session 배열의 요소 값을 직접 변경할 수 없습니다. 세션 배열을 생성하려면 먼저 일반 배열을 정의하고 각 요소에 초기값을 할당한 다음 마지막으로 세션 배열로 정의해야 합니다. 좋다:
<%
디마레이()
array=array("이","명","男")
세션("정보")=배열
Response.write Session("info")(0) &"-"
Response.write Session("info")(1) &"-"
Response.write 세션("info")(2) &"<br>"
%>
<시간>
<%
배열(0)="일"
배열(1)="유"
배열(2)="남성"
세션("정보")=배열
Response.write Session("info")(0) & "-"
Response.write Session("info")(1) & "-"
Response.write Session("info")(2) & "<br>"
%>