이전 기사에서 저자는이 기사에서 ASP 내장 객체 응답을 사용하는 방법을 자세히 소개했습니다.
데이터를 전송, 수신 및 처리하는 데 사용되는 개체 외에도 ASP의 활성 서버 애플리케이션 및 개별 사용자 정보를 나타내는 매우 실용적인 객체도 있습니다.
먼저 응용 프로그램 객체를 살펴 보겠습니다. 동일한 가상 디렉토리의 모든 .asp 파일 및 해당 하위 디렉토리가 ASP 응용 프로그램을 구성합니다. 응용 프로그램 객체를 사용하는 대신 주어진 응용 프로그램의 모든 사용자간에 정보를 공유하고 서버 작동 중에 데이터를 지속적으로 저장할 수 있습니다. 또한 응용 프로그램 객체에는 응용 프로그램 수준 데이터 및 이벤트에 대한 액세스를 제어하는 방법과 응용 프로그램이 시작되고 중지 될 때 프로세스를 트리거하는 데 사용할 수있는 이벤트가 있습니다.
애플리케이션 객체에 대해 함께 배우겠습니다.
1. 속성
애플리케이션 객체에는 내장 속성이 없지만 다음 구문을 사용하여 사용자 정의 속성을 설정할 수 있으며, 이는 컬렉션이라고도 할 수 있습니다.
응용 프로그램 (속성/수집 이름) = 값
다음 스크립트를 사용하여 응용 프로그램 객체의 속성을 선언하고 만들 수 있습니다.
< %
응용 프로그램 (myvar) = 안녕하세요
set application (myobj) = server.createobject (myComponent)
%>
응용 프로그램 객체의 속성을 할당하면 웹 서버 서비스가 종료되어 애플리케이션이 중지 될 때까지 지속됩니다. 응용 프로그램 객체에 저장된 값은 응용 프로그램의 모든 사용자가 읽을 수 있으므로 응용 프로그램 객체의 속성은 응용 프로그램 사용자간에 정보를 전달하는 데 특히 적합합니다.2. 방법
응용 프로그램 객체에는 두 가지 방법이 있으며, 둘 다 응용 프로그램에 저장된 데이터를 작성하는 여러 사용자를 처리하는 데 사용됩니다.
1. 잠금 방법은 다른 고객이 응용 프로그램 객체의 속성을 수정하는 것을 금지합니다.
잠금 메소드는 다른 고객이 응용 프로그램 객체에 저장된 변수를 수정하여 한 고객 만 동시에 응용 프로그램 변수를 수정하고 액세스 할 수 있도록합니다. 사용자가 잠금 해제 메소드를 명시 적으로 호출하지 않으면 .asp 파일이 종료 된 후 서버가 응용 프로그램 객체를 잠금 해제합니다.
애플리케이션을 사용하여 페이지 액세스 수를 기록하는 다음 프로그램을 살펴 보겠습니다.< %
Dim NumvisItsNumvisits = 0입니다
application.lockapplication (numvisits) = application (numvisits) + 1
application.unlock
%>
이 페이지에 오신 것을 환영합니다.이 페이지의 < %= application (numvisits) %> 방문자입니다!
위의 스크립트를 .asp 파일에 저장하고 페이지에 카운터를 쉽게 추가하십시오.
2. 잠금 방법과는 달리, 잠금 해제 방법을 사용하면 다른 고객이 애플리케이션 객체의 속성을 수정할 수 있습니다.
위의 예에서, 위의 예에서, 잠금 해제 메소드는 객체를 잠금 해제하여 다음 클라이언트가 Numvisits의 값을 증가시킬 수 있도록합니다.
III. 이벤트
1. Application_onstart
Application_onStart 이벤트는 새 세션이 첫 번째 생성되기 전에 발생합니다 (예 : Session_ONSTART 이벤트). Application_onStart 이벤트는 웹 서버가 시작될 때 트리거되어 응용 프로그램에 포함 된 파일에 요청을 허용합니다. Application_onStart 이벤트의 처리는 Global.asa 파일로 작성해야합니다.application_onstart 이벤트의 구문은 다음과 같습니다.
<script language = scriptLanguage runat = server>
하위 응용 프로그램.
종료 서브
< /스크립트>
2. 응용 프로그램
on_onend
Application_onend 이벤트는 Application_onend 이벤트의 처리가 종료되면 Session_Onend 이벤트 후에 발생합니다.
응용 프로그램 객체를 사용할 때주의를 기울여야 할 몇 가지 사항을 살펴 보겠습니다.
ASP 내장 객체는 응용 프로그램 객체에 저장할 수 없습니다. 예를 들어 아래 각 줄은 오류를 반환합니다.
< %
응용 프로그램 (VAR1) = 세션을 설정합니다
응용 프로그램 (VAR2) = 요청을 설정합니다
응용 프로그램 (VAR3) = 응답을 설정합니다
Application (VAR4) = 서버를 설정합니다
응용 프로그램 (VAR5) = 응용 프로그램을 설정합니다
Application (var6) = ObjectContext를 설정합니다
%>
애플리케이션 객체에 배열을 저장하는 경우 배열에 저장된 요소를 직접 변경하지 마십시오. 예를 들어 다음 스크립트는 실행할 수 없습니다.
< % 응용 프로그램 (storedArray) (3) = 새로운 값 %>
응용 프로그램 객체가 컬렉션으로 구현되기 때문입니다. 배열 요소가 저장된 array (3) 새로운 할당은 얻지 못했습니다. 이 값은 응용 프로그램 객체 수집에 포함 되며이 위치에 이전에 저장된 정보를 덮어 씁니다. Application 객체에 배열을 저장할 때 배열에서 개체를 검색하거나 변경하기 전에 배열 사본을 얻는 것이 좋습니다. 배열에서 작동 할 때는 모든 배열을 응용 프로그램 객체에 저장하여 변경 사항이 저장되도록해야합니다. 다음 스크립트는 이것을 보여줍니다.
--- asp8a.asp ---
< %
Dim MyArray ()
redim myarray (5)
MyArray (0) = 안녕하세요
MyArray (1) = 다른 문자열
application.lock
응용 프로그램 (StoredArray) = MyArray
application.unlock
Response.redirect asp8b.asp
%>
--- asp8b.asp ---
< %
localArray = 응용 프로그램 (StoredArray)
LocalArray (1) = 거기
응답. LocalArray (0) 및 LocalArray (1)
application.lock
응용 프로그램 (storedArray) = localArray
application.unlock
%>
응용 프로그램 개체와 비슷한 기능을 갖는 또 다른 실용적인 ASP 내장 객체는 세션입니다. 세션 객체를 사용하여 특정 사용자 세션에 필요한 정보를 저장할 수 있습니다. 사용자가 응용 프로그램 페이지를 점프하면 세션 객체에 저장된 변수가 지워지지 않으며 사용자가 응용 프로그램의 페이지에 액세스 할 때 항상 이러한 변수가 존재합니다. 사용자가 응용 프로그램에서 웹 페이지를 요청하면 사용자가 세션이없는 경우 웹 서버가 자동으로 세션 객체를 생성합니다. 세션이 만료되거나 포기되면 서버는 세션을 종료합니다.
서버의 세션 객체는 클라이언트 프로그램에 고유 한 쿠키를 보내면 관리 할 수 있습니다. 사용자가 ASP 응용 프로그램에서 처음으로 페이지를 요청하면 ASP는 HTTP 헤더 정보를 확인하여 메시지에 ASPSESSIONID라는 쿠키가 있는지 확인합니다. 세션의 가치를 지정 하고이 값을 새로운 AspsessionID 쿠키의 값으로 보냅니다.이 쿠키를 사용하여 서버에 저장된 클라이언트 프로그램에 액세스하십시오. 세션 객체의 가장 일반적인 기능은 사용자 기본 설정을 저장하는 것입니다. 예를 들어, 사용자가 그래픽을보고 싶지 않다는 것을 나타내는 경우 정보를 세션 객체에 저장할 수 있습니다. 또한 고객을 식별하는 프로그램에 종종 사용됩니다. 세션 상태는 쿠키를 지원하는 브라우저에서만 유지되며 고객이 쿠키 옵션을 끄면 세션이 작동하지 않습니다.
1. 속성
1. SessionID
SES
sionid 속성은 사용자의 세션 ID를 반환합니다. 세션을 만들 때 서버는 각 세션마다 별도의 ID를 생성합니다. 세션 식별자는 길쭉한 데이터 유형으로 반환됩니다. 대부분의 경우 SessionId는 웹 페이지 등록 통계에 사용할 수 있습니다.
2. 시간 초과
타임 아웃 속성은 응용 프로그램의 세션 객체에 대한 시간 초과 시간 제한을 몇 분 안에 지정합니다. 이 시간 초과 기간 내에 사용자가 새로 고침 또는 웹 페이지를 요청하지 않으면 세션이 종료됩니다.
2. 방법
포기하는 세션 객체에 대한 하나의 방법은 세션 객체에 저장된 모든 객체를 삭제하고 이러한 객체의 소스를 출시합니다. 포기 방법을 명시 적으로 호출하지 않으면 세션이 시간이 초과되면 서버가 이러한 객체를 삭제합니다. 서버가 현재 페이지 처리를 마치면 다음 예제가 세션 상태를 출시합니다.
< %session.abandon %>
III. 이벤트
세션 객체에는 세션 객체를 시작하고 릴리스 될 때 사용할 수있는 두 가지 이벤트가 있습니다.
1. Session_OnStart 이벤트는 서버가 새 세션을 생성 할 때 발생합니다. 서버는 요청 된 페이지를 실행하기 전에 스크립트를 처리합니다. Session_OnStart 이벤트는 모든 페이지에 액세스하기 전에 설정되기 때문에 세션 변수를 설정하기 가장 좋은시기입니다.
Session_OnStart 이벤트에 리디렉션 또는 종료 메소드 호출이 포함 된 경우 세션 객체가 유지되지만 서버는 Global.ASA 파일 처리를 중지하고 Session_ONSTART 이벤트를 트리거하는 파일의 스크립트를 트리거합니다.
특정 웹 페이지를 열 때 사용자가 항상 세션을 시작하도록하려면 Session_OnStart 이벤트에서 리디렉션 메소드를 호출 할 수 있습니다. 사용자가 응용 프로그램을 입력하면 서버는 사용자에 대한 세션을 생성하고 Session_OnStart 이벤트 스크립트를 처리합니다. 이 이벤트에 스크립트를 포함하여 사용자가 열린 페이지가 시작 페이지인지 확인하고 그렇지 않은 경우 사용자에게 웹 페이지를 시작하려면 Response.Redirect 메소드를 호출하도록 지시 할 수 있습니다. 절차는 다음과 같습니다.
<script runat = server language = vbscript>
서브 세션 _onstart
startPage = /myapp/starthere.asp
currentpage = request.servervaribles (script_name)
strcomp (currentpage, startpage, 1) 인 경우
Response.Redirect (STARTPAGE)
끝 If
종료 서브
< /스크립트>
위의 프로그램은 쿠키를 지원하는 브라우저에서만 실행할 수 있습니다. 쿠키를 지원하지 않는 브라우저는 SessionID 쿠키를 반환 할 수 없으므로 사용자가 웹 페이지를 요청할 때마다 서버는 새 세션을 만듭니다. 이러한 방식으로 각 요청 서버마다 Session_OnStart 스크립트가 처리되고 사용자는 시작 페이지로 리디렉션됩니다.
2. 세션 _onend 이벤트는 세션 중에 발생하거나 시간이 초과됩니다.
세션 객체 사용에 대한 정보는 비슷합니다. 이전 기사를 참조하십시오.
세션은 다음 세 가지 방법으로 시작할 수 있습니다.
1. 새 사용자는 응용 프로그램에서 .asp 파일을 식별하는 URL에 대한 액세스를 요청하고 응용 프로그램의 Global.asa 파일에는 session_onstart 프로세스가 포함됩니다.
2. 사용자는 세션 객체에 값을 저장합니다.
3. 사용자는 응용 프로그램의 .asp 파일을 요청했고 응용 프로그램의 Global.asa 파일은 <botort> 태그를 사용하여 세션 스코프가있는 객체의 인스턴스를 만듭니다.
사용자가 지정된 시간 내에 응용 프로그램의 페이지를 요청하거나 새로 고치지 않으면 세션이 자동으로 종료됩니다. 이 기간의 기본값은 20 분입니다. 인터넷 서비스 관리자의 애플리케이션 옵션 속성 페이지에서 세션 타임 아웃 속성을 설정하여 응용 프로그램의 기본 시간 초과 제한 설정을 변경할 수 있습니다. 이 값은 웹 응용 프로그램의 요구 사항과 서버의 메모리 공간에 따라 설정해야합니다. 예를 들어, 웹 애플리케이션을 탐색하려는 사용자가 각 페이지에 몇 분 동안 유지하도록하려면 세션의 기본 시간 초과 값을 단축해야합니다. 지나치게 긴 세션 타임 아웃 값은 너무 많은 열린 세션을 유발하고 서버의 메모리 자원을 소진시킵니다. 특정 세션의 경우 기본 타임 아웃 값보다 작은 타임 아웃 값을 설정하려면 세션 객체를 설정할 수 있습니다.
타임 아웃 속성. 예를 들어, 다음 스크립트는 타임 아웃 값을 5 분으로 설정합니다.
< %session.timeout = 5 %>
물론 기본 설정보다 시간 초과 값을 설정할 수도 있습니다. 타임 아웃 속성은 타임 아웃 값을 결정합니다. 세션 객체의 포기 방법을 통해 세션을 명시 적으로 종료 할 수도 있습니다. 예를 들어, 테이블에 종료 버튼을 제공하여 버튼의 조치 매개 변수를 다음 명령을 포함하는 .asp 파일의 URL로 설정하십시오.
< %session.abandon %>
오늘날 우리는 웹 페이지, 특히 웹 기반 BBS 또는 채팅에서 ASP를 사용하는 두 개의 내장 객체를 배웠습니다.이 두 객체는 실제 응용 프로그램에서 매우 실용적이므로 다음 기사에서 배운 내용을 적용합니다. . 4 개의 내장 ASP 객체 나는이 연습을 통해 ASP 응용 프로그램에 대한 이해와 숙달을 크게 심화시킬 수 있다고 생각합니다. 역동적 인 웹 사이트 디자인의 18 개 무술에주의를 기울이십시오 (9).