ASP Global.asa 파일
- 이전 페이지 ASP #include
- 다음 페이지 ASP 이메일
Global.asa 파일은 선택적인 파일로, ASP 애플리케이션의 각 페이지에서 접근할 수 있는 객체, 변수 및 메서드의 선언을 포함할 수 있습니다.
Global.asa 파일
Global.asa 파일은 선택적인 파일로, ASP 애플리케이션의 각 페이지에서 접근할 수 있는 객체, 변수 및 메서드의 선언을 포함할 수 있습니다. 모든 법적인 브라우저 스크립트는 Global.asa에서 사용할 수 있습니다.
Global.asa 파일은 다음과 같은 내용을 포함할 수 있습니다:
- Application 이벤트
- Session 이벤트
- <object> 선언
- TypeLibrary 선언
- #include 명령
주석:Global.asa 파일은 ASP 애플리케이션의 루트 디렉토리에 저장되어야 하며, 각 애플리케이션은 하나의 Global.asa 파일만 가질 수 있습니다.
Global.asa 이벤트
Global.asa에서는 application과 session 객체가 시작과 종료 시에 무엇을 할지 알릴 수 있습니다. 이 작업을 수행하는 코드는 이벤트 오퍼레이터에 배치됩니다. Global.asa 파일은 네 가지 유형의 이벤트를 포함할 수 있습니다.
Application_OnStart - 첫 번째 사용자가 ASP 응용 프로그램에서 첫 번째 페이지를 호출할 때마다 발생하는 이벤트입니다. 이 이벤트는 웹 서버가 재시작되거나 Global.asa 파일이 편집된 후에 발생합니다. "Session_OnStart" 이벤트는 이 이벤트가 발생한 후 즉시 발생합니다.
Session_OnStart - 새 사용자가 그의 ASP 응용 프로그램에서 첫 번째 페이지를 요청할 때마다 발생하는 이벤트입니다.
Session_OnEnd - 사용자가 session을 종료할 때마다 발생하는 이벤트입니다. 설정된 시간(기본 이벤트는 20분) 내에 페이지가 요청되지 않으면 session이 종료됩니다.
Application_OnEnd - 마지막 사용자가 그의 session을 종료한 후에 발생하는 이벤트입니다. 일반적으로, 이 이벤트는 웹 서버가 중지될 때 발생합니다. 이 서브 프로그램은 응용 프로그램이 중지되면 설정을 지우거나 텍스트 파일에 정보를 쓰는 등의 작업을 수행합니다.
Global.asa 파일은 다음과 같이 될 수 있습니다:
<script language="vbscript" runat="server"> sub Application_OnStart 'some code end sub sub Application_OnEnd 'some code end sub sub Session_OnStart 'some code end sub sub Session_OnEnd 'some code end sub </script>
주석:Global.asa 파일에서 ASP 스크립트 구분자 (<%와 %>)를 사용할 수 없기 때문에, HTML의 <script> 요소를 사용해야 합니다.
<object> 선언
Global.asa 파일에서 session 또는 application 범위의 객체를 생성할 수 있습니다.
주석:<object> 태그는 <script> 태그 외에 위치해야 합니다.
문법:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
파라미터 | 설명 |
---|---|
scope | 객체의 범위(사용범위)(Session 또는 Application)를 설정합니다. |
id | 객체에 독특한 id를 지정합니다. |
ProgID |
ClassID와 연관된 id입니다. ProgID의 형식은: [Vendor.]Component[.Version]입니다. ProgID 또는 ClassID가 지정되어야 합니다. |
ClassID |
COM 클래스 객체에 독특한 id를 지정합니다. ProgID 또는 ClassID가 지정되어야 합니다. |
인스턴스
첫 번째 인스턴스는 "MyAd" 이름의 인스턴스를 생성하여 ProgID 파라미터를 사용한 session 범위 객체를 생성합니다:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
두 번째 인스턴스는 "MyConnection" 이름의 인스턴스를 생성하여 ClassID 파라미터를 사용합니다:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
이 Global.asa 파일에서 선언된 이 객체는 애플리케이션 중의 어떤 스크립트에서도 사용할 수 있습니다.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
이 "MyAd" 객체를 ASP 애플리케이션의 어떤 페이지에서도 참조할 수 있습니다:
어떤 .ASP 파일:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary 선언
TypeLibrary (타입 라이브러리)는 COM 객체에 해당하는 DLL 파일을 포함한 컨테이너입니다. Global.asa에 TypeLibrary 호출을 포함하면 COM 객체의 상수에 접근할 수 있으며, ASP 코드도 오류를 더 잘 보고할 수 있습니다. 타입 라이브러리에 이미 선언된 데이터 타입의 COM 객체에 의존하는 웹 사이트의 애플리케이션이 있다면, Global.asa에서 타입 라이브러리를 선언할 수 있습니다.
문법:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
파라미터 | 설명 |
---|---|
file | 타입 라이브러리를 가리키는 절대 경로를 정의합니다. 파일 또는 uuid 파라미터 중 하나는 필수입니다. |
uuid | 타입 라이브러리에 대한 유일한 식별자를 정의합니다. 파일 또는 uuid 파라미터 중 하나는 필수입니다. |
version | 선택 사항. 버전을 선택합니다. 지정된 버전이 없으면 가장 가까운 버전을 사용합니다. |
lcid | 선택 사항. 타입 라이브러리의 지역 식별자를 사용합니다. |
에러 값
서버는 다음 중 하나의 오류 메시지를 반환합니다:
에러 | 코드 | 설명 |
---|---|---|
ASP | 0222 | Invalid type library specification |
ASP | 0223 | 타입 라이브러리를 찾을 수 없습니다. |
ASP | 0224 | 타입 라이브러리를 로드할 수 없습니다. |
ASP | 0225 | 타입 라이브러리를 포장할 수 없습니다. |
주석:METADATA 태그는 Global.asa 파일의 어느 위치에나 위치할 수 있습니다. <script> 태그의 내부와 외부 모두 가능합니다. 그러나 Global.asa 파일의 상단에 METADATA 태그를 위치시키는 것이 좋습니다.
제한
Global.asa 파일에서 참조할 수 있는 내용에 대한 제한:
Global.asa 파일 내의 텍스트를 표시할 수 없습니다. 이 파일은 정보를 표시할 수 없습니다.
Server와 Application 객체는 Application_OnStart와 Application_OnEnd 서브루프에서만 사용할 수 있습니다. Session_OnEnd 서브루프에서는 Server, Application, Session 객체를 사용할 수 있습니다. Session_OnStart 서브루프에서는 어떤 내장 객체도 사용할 수 있습니다.
서브루프 사용법
Global.asa는 변수를 초기화하는 데 자주 사용됩니다.
방문자가 사이트에 처음 도착한 정확한 시간을 감지하는 방법을 보여주는 예제입니다. 시간은 "started"이라는 세션 객체에 저장되며, "started" 변수의 값은 애플리케이션 내의 어떤 ASP 페이지에서도 접근할 수 있습니다:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa는 페이지 접근을 제어하기도 사용됩니다.
다음 예제는 각 새로운 방문자를 다른 페이지로 리디렉션하는 방법을 보여줍니다. 이 예제에서는 "newpage.asp" 페이지로 리디렉션됩니다:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Global.asa 파일에 함수를 포함할 수도 있습니다.
웹 서버가 시작될 때, Application_OnStart 서브루프가 시작됩니다. 그런 다음, Application_OnStart 서브루프는 "getcustomers"라는 다른 서브루프를 호출합니다. "getcustomers" 서브루프는 데이터베이스를 열고 "customers" 테이블에서 레코드 셋을 가져옵니다. 이 레코드 셋은 배열에 할당되며, 데이터베이스를 조사하지 않고도 어떤 ASP 페이지에서도 이 배열에 접근할 수 있습니다:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Global.asa 인스턴스
이 예제에서는 현재 방문자 수를 계산할 수 있는 Global.asa 파일을 생성하려고 합니다。
Application_OnStart은 서버가 시작될 때 Application 변수 "visitors"의 값을 0으로 설정합니다。
새 사용자가 방문할 때마다, Session_OnStart 서브루틴은 변수 "visitors"에 1을 증가시킵니다。
Session_OnEnd 서브루틴이 트리거될 때마다, 이 서브루틴은 변수 "visitors"에서 1을 감소시킵니다。
Global.asa 파일:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
이 ASP 파일은 현재 사용자 수를 표시합니다:
<html> <head> </head> <body> <p>지금オン라인에 <%response.write(Application("visitors"))%> 명이 있습니다!</p> </body> </html>
- 이전 페이지 ASP #include
- 다음 페이지 ASP 이메일