ASP 글로벌.asa



Global.asa 파일

Global.asa 파일은 ASP 응용 프로그램의 모든 페이지에서 액세스하는 개체, 변수 및 메서드의 선언을 포함할 수 있는 선택적 파일입니다.

모든 합법적인 브라우저 스크립트(JavaScript, VBScript, JScript, PerlScript 등)를 Global.asa에서 사용할 수 있습니다.

Global.asa 파일에는 다음 콘텐츠만 포함될 수 있습니다.

  • Application 이벤트

  • Session 이벤트

  • <object> 선언

  • TypeLibrary 선언

  • #include 지시문

참고: Global.asa 파일은 ASP 응용 프로그램의 루트 디렉터리에 저장되어야 하며 각 응용 프로그램에는 Global.asa 파일이 하나만 있을 수 있습니다.


Global.asa의 이벤트

Global.asa에서는 애플리케이션/세션이 시작될 때 수행할 작업과 애플리케이션/세션이 종료될 때 수행할 작업을 애플리케이션 및 세션 객체에 지시할 수 있습니다. 이 작업을 수행하는 코드는 이벤트 핸들러에 배치됩니다. Global.asa 파일에는 네 가지 유형의 이벤트가 포함될 수 있습니다.

Application_OnStart - 이 이벤트는 첫 번째 사용자가 ASP 응용 프로그램의 첫 번째 페이지를 호출할 때 발생합니다. 이 이벤트는 웹 서버가 다시 시작되거나 Global.asa 파일이 편집된 후에 발생합니다. "Session_OnStart" 이벤트는 이 이벤트 직후에 발생합니다.

Session_OnStart - 이 이벤트는 새로운 사용자가 ASP 애플리케이션에서 첫 번째 페이지를 요청할 때마다 발생합니다.

Session_OnEnd - 이 이벤트는 사용자가 세션을 종료할 때마다 발생합니다. 사용자가 지정된 시간(기본 시간은 20분) 내에 페이지를 요청하지 않으면 사용자 세션이 종료됩니다.

Application_OnEnd - 이 이벤트는 마지막 사용자가 세션을 종료한 후에 발생합니다. 일반적으로 이 이벤트는 웹 서버가 중지될 때 발생합니다. 이 서브루틴은 응용 프로그램이 중지된 후 기록 삭제, 텍스트 파일에 정보 쓰기 등의 설정을 지우는 데 사용됩니다.

Global.asa 파일은 다음과 같습니다.

<script 언어="vbscript" runat="server">

sub Application_OnStart
'일부 코드
end sub

sub Application_OnEnd
'일부 코드
end sub

sub Session_OnStart
'일부 코드
end sub

sub Session_OnEnd
'일부 코드
end sub

</script>

참고: Global.asa 파일에서 ASP의 스크립트 구분 기호(<% 및 %>)를 사용하여 스크립트를 삽입할 수 없으므로 HTML <script> 요소 안에 서브루틴을 배치해야 합니다.


<object> 선언

은 <object> 태그를 사용하여 Global.asa 파일에 세션 또는 애플리케이션 범위의 개체를 생성할 수 있습니다.

참고: <object> 태그는 <script> 태그 외부에 있어야 합니다.

Syntax

<object runat="server" range="scope" id="id" {progid="progID"|classid="classID"}>
.....
</object>

매개변수설명
scope객체(세션 또는 애플리케이션)의 범위를 설정합니다.
id객체의 고유 ID를 지정합니다.
ProgIDClassID와 연결된 ID입니다. ProgID의 형식은 [Vendor.]Component[.Version]입니다.
参数描述
scope设置对象(Session 或 Application)的作用域。
id为对象指定一个唯一的 id。
ProgID与 ClassID 关联的 id。ProgID 的格式是:[Vendor.]Component[.Version]。

ProgID 或 ClassID 必需被指定。

ClassID为 COM 类对象指定一个唯一的 id。

ProgID 或 ClassID 必需被指定。

ProgID 또는 ClassID를 지정해야 합니다. 🎜
ClassIDCOM 클래스 개체의 고유 ID를 지정합니다. 🎜ProgID 또는 ClassID를 지정해야 합니다. 🎜

Example

첫 번째 예에서는 ProgID 매개변수를 사용하여 "MyAd"라는 세션 범위 개체를 만듭니다.

<object runat="server" range="session" id="MyAd" progid="MSWC.AdRotator">
</object>

두 번째 인스턴스는 ClassID 매개 변수를 사용하여 "MyConnection"이라는 응용 프로그램 범위 개체를 만듭니다.

<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>

ASP 응용 프로그램의 모든 페이지에서 "MyAd" 개체를 참조할 수 있습니다.

A .ASP 파일:

<%=MyAd.GetAdvertisement( "/banners/adrot.txt")%>


TypeLibrary 선언

TypeLibrary(형식 라이브러리)는 COM 개체에 해당하는 DLL 파일을 보관하는 컨테이너입니다. Global.asa 파일에 TypeLibrary에 대한 호출을 포함시키면 COM 개체의 상수에 액세스할 수 있으며 ASP 코드는 오류를 더 효과적으로 보고할 수 있습니다. 웹 응용 프로그램이 형식 라이브러리에 선언된 데이터 형식의 COM 개체에 의존하는 경우 Global.asa에서 형식 라이브러리를 선언할 수 있습니다.

Syntax

<--METADATA TYPE="TypeLib"
file="filename" uuid="id" 버전="번호" lcid="localeid"
-->

매개변수설명
파일< /td>유형 라이브러리의 절대 경로를 지정합니다.
参数描述
file规定指向类型库的绝对路径。

file 参数或者 uuid 参数,两者缺一不可。

uuid规定了类型库的唯一的标识符。

file 参数或者 uuid 参数,两者缺一不可。

version可选。用于选择版本。如果没有找到需要的版本,将使用最接近的版本。
lcid可选。用于类型库的地区标识符。
file 매개변수 또는 uuid 매개변수는 모두 필수입니다. 🎜
uuid는 유형 라이브러리의 고유 식별자를 지정합니다. 🎜file 매개변수 또는 uuid 매개변수는 모두 필수입니다. 🎜
버전선택 사항. 버전을 선택하는데 사용됩니다. 필요한 버전이 없으면 가장 가까운 버전이 사용됩니다.
lcid선택 사항. 형식 라이브러리에 사용되는 로캘 식별자입니다.

오류 값

서버는 다음 오류 메시지 중 하나를 반환합니다.

错误代码描述
ASP 0222无效的类型库规范
ASP 0223没有找到类型库
ASP 0224无法加载类型库
ASP 0225无法包装类型库

참고: METADATA 태그는 Global.asa 파일의 어느 위치에나 나타날 수 있습니다(<script> 태그 내부 또는 외부). 그러나 여전히 Global.asa 파일 상단에 METADATA 태그를 배치하는 것이 좋습니다.


제한 사항

Global.asa 파일에서 참조할 수 있는 항목에 대한 제한 사항:

  • Global.asa 파일에는 텍스트를 표시할 수 없습니다. 이 파일에는 정보를 표시할 수 없습니다.

  • Application_OnStart 및 Application_OnEnd 서브루틴에서는 서버 및 애플리케이션 개체만 사용할 수 있습니다. Session_OnEnd 서브루틴에서는 서버, 애플리케이션 및 세션 객체를 사용할 수 있습니다. Session_OnStart 서브루틴에서는 모든 내장 객체를 사용할 수 있습니다.


서브루틴 사용 방법

Global.asa는 변수를 초기화하는 데 자주 사용됩니다.

다음 예는 방문자가 웹사이트에 처음 도착하는 정확한 시간을 감지하는 방법을 보여줍니다. 시간은 "started"라는 세션 개체에 저장되며 "started" 변수의 값은 응용 프로그램의 모든 ASP 페이지에서 액세스할 수 있습니다.

<script 언어="vbscript" runat="server"> ;
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa를 사용하여 페이지 액세스를 제어할 수도 있습니다.

다음 예에서는 각 신규 방문자를 다른 페이지(이 경우 "newpage.asp")로 리디렉션하는 방법을 보여줍니다.

<script 언어="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

Global.asa 파일에 함수를 포함할 수 있습니다.

아래 예에서는 웹 서버가 시작될 때 Application_OnStart 서브루틴도 시작됩니다. 그런 다음 Application_OnStart 서브루틴은 "getcustomers"라는 다른 서브루틴을 호출합니다. "getcustomers" 서브루틴은 데이터베이스를 열고 "customers" 테이블에서 레코드세트를 검색합니다. 이 레코드 세트는 배열에 할당되며 모든 ASP 페이지는 데이터베이스를 쿼리하지 않고도 이 배열에 액세스할 수 있습니다.

<script 언어="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("고객에서 이름 선택")
Application("고객")=rs.GetRows
rs.Close
conn.Close
end sub

</script>


Global.asa 예시

이 예시에서는 현재 방문자 수를 계산하는 Global.asa 파일을 생성하겠습니다.

  • 서버가 시작되면 Application_OnStart는 애플리케이션 변수 "visitors"의 값을 0으로 설정합니다.

  • 새로운 방문자가 올 때마다 Session_OnStart 서브루틴은 변수 "visitors"에 1을 추가합니다.

  • Session_OnEnd 서브루틴이 트리거될 때마다 서브루틴은 "visitors" 변수를 1씩 감소시킵니다.

Global.asa 파일:

<script 언어="vbscript" runat="server">

Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application. Lock
Application("방문자")=애플리케이션("방문자")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("방문자")=애플리케이션("방문자")-1
Application .UnLock
End Sub

</script>

ASP 파일에서 현재 방문자 수를 표시합니다:

        <!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><%response.write(Application("visitors"))%>가 있습니다. ; 지금 온라인에 접속하세요!</p>
</body>
</html>