출 처 : http://74.125.155.132/search?q=cache:UO1dr06onwkJ:kmh.yeungnam-c.ac.kr/cgi/ASP/asp/ASP_global.htm+global.asa&cd=8&hl=ko&ct=clnk&lr=lang_ko
원출처는 어딘지 모르겠지만 정말 재밌게 써 놓으셨네..
이해 팍팍~
Global.asa 에 대하여... 첨 ASP를 공부하시는 분은 도대체 global.asa 가 모하는 녀석인지 상당히 궁금하실 겁니다. 만약 저~언혀 궁금하지 않으시다면 저리 비키십시요~~ 쿠하하.. global.asa는 상당히 까다로울 작업들을 녀석이 알아서 해결해 주는 착한 녀석이지요.. 그 까다로울 작업이란... 어플리케이션이 시작되고 끝나는 시점과 세션이 시작되고 끝나는 시점을 정의하는 것이지요... 이 글러볼 쩜 메이에스에이 가 없다면 어떻게 그러한 시점들을 우리가 체크할 수 있을지.. 막막하네요... 자.. 어쨋든 이 글러벌은... 그 기능들을 막 제공해 줍니다... 이제 우리는 그 제공되는 시점에서 해야할 일들을 코딩해주기만 하믄 되는 것이지요.. 이러한 이유로 global.asa를 쓰는 겁니다.. 이제는 정확히 아시겠죠?? (-_-;) 사용하다보면 아아~ 이래서 이걸 썼구나.. 라고 깨닫는 날이 언젠가는 찾아올겁니다. 만약 그날이 오면 꼭 저한테두 한번 들려달라구 전해 주시길....(지금 비가 내립니다..증세가..) 해서 Global.asa 에는 4개의 주요이벤트를 감지하는 책임이 있습지요.. 그 4개의 이벤트라함은 Application_OnStart 과 Application_OnEnd 그리고 Session_OnStart 와 Session_OnEnd 입니다. 전형적인 Global.asa 는 4개의 이벤트를 가지고 있으며.. <SCRIPT LANGUAGE=VBscript RUNAT=Server> 라는 스크립트로 시작해서.... </script>로 끝납니다... 이 안에다가 4개의 이벤트를 코딩하는 거지요... Runat=Server 이라함은 이 스크립트는 서버에서 실행된다는 의미입니다.. ASP를 작성할때 쓰는 <% %>와 기능면에서 비슷한 거지요.. 눈에는 보이지 않고 결과만 클라이언트에게 돌려주니까요.. 아무것도 작성되지 않은 Global.asa 의 원초적인 모습은 다음과 같습니다.
영어로 뭐라구 막써있지요??? 그 내용은 아래와 같습니다. ' 이파일에는 특별한 ASP 이벤트가 발생했을때 자동으로 실행되는 특별한 이벤트 ' 핸들러를 추가할수 있다. 이러한 핸들러를 생성하기 위해서는, 사용하고자 하는 이벤트와 ' 대응하는 서브루틴 이름을 아래 목록으로부터 추가하라. ' 예를들어 Session_OnStart 를 위한 이벤트 핸들러를 생성하기 위해 ' 다음코드를 파일에 추가하여야 한다..(주석문은 제외하고) 그리고 또 뭐라구 막 써있죠???? 이런 딱딱한 설명은 집어 치웁니다. 간단하게 말해서... 우리가 필요한 시점에 맞게 알아서 코딩을 하라는 내용이지요... 그럼 그 시점이라는 것이 언제냐... 그걸 알아야지만 알맞게 코딩을 넣을수 있겠지요?? 먼저 Application_OnStart .. 요건 첫 사용자가 가상 디렉토리로부터 웹페이지를 요청했을때 오로지 결사코 한번 발생합니다. 그러니까 서버가 돌기 시작하구 첫 사용자가 빡! 들어오면.. 고때 한번 실행되고 다시 실행은 되지 않습니다. 그 이후부터는 Session_OnStart 라는 녀석이 실행되지요... 매 사용자가 들어올때마다 이 Session_OnStart 를 거치게 됩니다. 누구나 반드시 거칠수 밖에 없는 일종의 그런거지요.. 비숫한 것으로 고래잡기,첫경험(?)등이 있겠지만...그런것은 어떤 사람은 안 겪기도 하니깐.. 그런 것 보다 더 막강한 과정이라고 하겠지요.. 소변보기나 침 삼키기.. 같은거... 절대 피해갈수 없는거... (음.. 오늘은 상당히 오버합니다.) 가상디렉토리 밑의 어느 페이지로 몰래 숨어들어와도 자동으로 작동합니다... 세콤의 위력은 저리가라이지요... 크하하... (오버..오버..) 기본적으로 세션은 20분간 지속되며 사용자가 빠져나간지 20분이 지나면 Session_OnEnd 가 실행됩니다. 그리고 가상디렉토리에서 모든 사용자의 세션이 끝나게되면 그때 Application_OnEnd가 실행되는 겁니다.
두놈이 5분 간격으로 들어왔다 칩시다... 먼저온 놈이 막 놀다가 나갔습니다... 두번째 놈두 막 놀다가 "이런 웹페이지가 있다니 정말 끝내주는데... 결사코 담번 에는 안 온다..씨앙~~" 하며 나갔습니다. 그럼 요 때려주길놈이 나가면 어플리케이션이 종료될까요??? 언제나 그렇듯이... 답이 "예"라면 물어볼리가 없으니 당연히 아니겠지요.... 아닙니다... 고 나쁜 놈이 나가고 20분이 지나야 Application_OnEnd가 작동합니다. 고 나쁘놈이 나간지 19분 59초만에 고 나쁜 놈이나 다른 좋은 놈이 들어왔습니다. 그렇게 되면 아직도 그리고 앞으로도 20분이상은 어플리케이션은 종료되지 않겠죠?? 이제 어느정도 거의다 개념은 잡으신듯 합니다. 이제 실습으로 들어가 볼까요??
카운터 만들기로 들어갑시다.... 좋은 하루가 되시기를 바라며..... |