최신 웹 개발 튜토리얼
 

ASP Global.asa 파일


Global.asa 파일

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

유효한 모든 브라우저 스크립트 (JavaScript, VBScript, JScript, PerlScript, etc.) Global.asa 파일 내에서 사용할 수 있습니다.

Global.asa 파일은 다음을 포함 할 수 있습니다 :

  • 응용 프로그램 이벤트
  • 세션 이벤트
  • <object> 선언
  • TypeLibrary 선언
  • #include 지시문

Note: Global.asa 파일은 ASP 응용 프로그램의 루트 디렉토리에 저장해야하며, 각 응용 프로그램은 하나 개의 Global.asa 파일을 가질 수 있습니다.


Global.asa에 이벤트

Global.asa에 당신은 응용 프로그램을 알 수 및 세션 응용 프로그램 / 세션이 종료 될 때 응용 프로그램 / 세션을 시작하고 무엇을 할 때 무엇을 객체. 이에 대한 코드는 이벤트 핸들러에 배치됩니다. Global.asa 파일은 이벤트의 네 가지 유형을 포함 할 수 있습니다 :

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

Session_OnStart -이 이벤트는 NEW 사용자가 ASP 응용 프로그램에서 자신의 첫 페이지를 요청할 때마다 발생합니다.

Session_OnEnd -이 이벤트는 사용자가 세션을 종료 할 때마다 발생합니다. 페이지가 지정된 시간 동안 사용자가 요청하지 않은 한 후 사용자 세션이 종료 (by default this is 20 minutes) .

Application_OnEnd - 마지막 사용자가 세션을 종료 한 후이 이벤트가 발생합니다. 웹 서버가 중지 될 때 일반적으로이 이벤트가 발생합니다. 이 절차는 응용 프로그램을 중지 한 후 삭제 기록과 같은 설정을 청소하거나 텍스트 파일에 정보를 기록하는 데 사용됩니다.

Global.asa 파일은 다음과 같을 수 있습니다 :

<script language="vbscript" runat="server">

sub Application_OnStart
' Note: 우리는 ASP 스크립트 구분 기호를 사용할 수 없기 때문에 (<% and %>) Global.asa 파일에 스크립트를 삽입, 우리는 HTML 내에서 서브 루틴을 넣어 <script> 요소입니다.


<object> 선언

사용의 Global.asa의 세션이나 애플리케이션 범위로 객체를 생성 할 수있다 <object> 태그.

Note: <object> 태그는 외부해야 <script> 태그!

통사론

<object runat="server" scope=" 매개 변수 기술 scope 개체의 범위 설정 (either Session or Application) id 개체에 대한 고유 ID를 지정합니다 ProgID 클래스 ID와 연관된 ID입니다. ProgID와의 형식은 [벤더.]은 성분 [.Version]

하나의 ProgID 또는 ClassID가 지정해야합니다.

ClassID 의 COM 클래스 객체에 대한 고유 ID를 지정합니다.

하나의 ProgID 또는 ClassID가 지정해야합니다.

첫번째 예는 명명 된 세션 범위의 개체 생성 "MyAd" ProgID와 파라미터를 사용하여 :

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

You could reference the object "MyAd" from any page in the ASP application:

SOME .ASP FILE:

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

TypeLibrary 선언

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

통사론

<!--METADATA TYPE="TypeLib"
file=" 매개 변수 기술 file 형식 라이브러리에 대한 절대 경로를 지정합니다.

어느 파일 매개 변수 또는 UUID 매개 변수가 필수입니다

uuid 형식 라이브러리에 대한 고유 식별자를 지정합니다.

어느 파일 매개 변수 또는 UUID 매개 변수가 필수입니다

version 선택 과목. 버전을 선택하는 데 사용됩니다. 요청 된 버전을 찾을 수없는 경우, 가장 최근의 버전이 사용됩니다 lcid 선택 과목. 로케일 식별자 형식 라이브러리에 사용될

오류 값

서버는 다음과 같은 오류 메시지 중 하나를 반환 할 수 있습니다 :

에러 코드 기술
ASP 0222 잘못된 형식 라이브러리 사양
ASP 0223 형식 라이브러리를 찾을 수 없습니다
ASP 0224 형식 라이브러리를로드 할 수 없습니다
ASP 0225 타입 라이브러리는 포장 할 수 없다

Note: 메타 데이터 태그는 Global.asa 파일의 어느 곳에 나 위치 할 수있다 (both inside and outside <script> tags) . 그러나, 메타 데이터 태그는 Global.asa 파일의 상단에 표시하는 것이 좋습니다.


제한

당신이 Global.asa 파일에 포함 할 수 있는지에 대한 제한 :

  • 당신은 Global.asa 파일에 기록 된 텍스트를 표시 할 수 없습니다. 이 파일은 정보를 표시 할 수 없습니다
  • 당신 만의 Application_OnStart 및 다음 Application_OnEnd 서브 루틴의 서버 및 응용 프로그램 개체를 사용할 수 있습니다. 이 Session_OnEnd 서브 루틴에서는 서버, 응용 프로그램 및 세션 개체를 사용할 수 있습니다. 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는 응용 프로그램 변수 설정 "visitors" 서버가 시작할 때 0
  • Session_OnStart 서브 루틴은 변수를 하나 추가 "visitors" 새로운 방문자가 도착할 때마다
  • 이 Session_OnEnd 서브 루틴에서 하나를 뺀 "visitors" 이 서브 루틴이 트리거 될 때마다

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 파일에서 현재 방문자 수를 표시하려면 :

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>