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 파일은 다음과 같습니다.
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>
매개변수 | 설명 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
scope | 객체(세션 또는 애플리케이션)의 범위를 설정합니다. | ||||||||||
id | 객체의 고유 ID를 지정합니다. | ||||||||||
ProgID | ClassID와 연결된 ID입니다. ProgID의 형식은 [Vendor.]Component[.Version]입니다.
| ||||||||||
ClassID | COM 클래스 개체의 고유 ID를 지정합니다. 🎜ProgID 또는 ClassID를 지정해야 합니다. 🎜 |
Example
첫 번째 예에서는 ProgID 매개변수를 사용하여 "MyAd"라는 세션 범위 개체를 만듭니다.
</object>
두 번째 인스턴스는 ClassID 매개 변수를 사용하여 "MyConnection"이라는 응용 프로그램 범위 개체를 만듭니다.
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>
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
file="filename" uuid="id" 버전="번호" lcid="localeid"
-->
매개변수 | 설명 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
파일< /td> | 유형 라이브러리의 절대 경로를 지정합니다.
| ||||||||||
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 페이지에서 액세스할 수 있습니다.
sub Session_OnStart
Session("started")=now()
end sub
</script>
Global.asa를 사용하여 페이지 액세스를 제어할 수도 있습니다.
다음 예에서는 각 신규 방문자를 다른 페이지(이 경우 "newpage.asp")로 리디렉션하는 방법을 보여줍니다.
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>
Global.asa 파일에 함수를 포함할 수 있습니다.
아래 예에서는 웹 서버가 시작될 때 Application_OnStart 서브루틴도 시작됩니다. 그런 다음 Application_OnStart 서브루틴은 "getcustomers"라는 다른 서브루틴을 호출합니다. "getcustomers" 서브루틴은 데이터베이스를 열고 "customers" 테이블에서 레코드세트를 검색합니다. 이 레코드 세트는 배열에 할당되며 모든 ASP 페이지는 데이터베이스를 쿼리하지 않고도 이 배열에 액세스할 수 있습니다.
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 파일:
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 파일에서 현재 방문자 수를 표시합니다:
<html>
<head>
</head>
<body>
<p><%response.write(Application("visitors"))%>가 있습니다. ; 지금 온라인에 접속하세요!</p>
</body>
</html>