[문과 코린이의 IT 기록장] ASP Counter - Counter 만들기
[ Counter 만들기 ]
1) visit.txt
웹서버의 홈 디렉토리에 visit.txt라는 파일을 하나 만들고, 첫번째 줄에 '0' 쓰고 저장
2) global.asa
global.asa파일 만들기
- 카운터를 만들기 위해 필수적임.
- 이름도 변경되면 안되며, 반드시 웹 디렉토리의 루트(wwwroot)에 존재해야 함
<SCRIPT LANGUAGE=VBscript RUNAT=Server>
Sub Application_OnStart
strFname=Server.MapPath(".")+"\visit.txt"
'visit.txt가 있는 곳의 경로지정. 현재 global.asa 가 있는 디렉토리에 존재하는 visit.txt로 설정한다.
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
Set out =objFile.OpenTextFile(strFname,1)
Application("visit") = out.ReadLine '텍스트 파일안에 있는 숫자를 읽어온다.
Set out = nothing
Set objFile = nothing
End Sub
Sub Application_OnEnd
strFname=Server.MapPath(".")+"\visit.txt"
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
Set out =objFile.CreateTextFile(strFname,true)
out.WriteLine(Application("visit")) '텍스트 파일에 현재까지의 방문자의 총 수를 저장한다.
Set out = nothing
Set objFile = nothing
End Sub
Sub Session_OnStart
strFname=Server.MapPath(".")+"\visit.txt"
Application.Lock
Application("visit") = Application("visit") + 1
Application.UnLock
If Application("visit") MOD 5 =0 then
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
Set out = objFile.CreateTextFile(strFname,true)
Application.Lock
out.WriteLine(Application("visit"))
Application.UnLock
Set out = nothing
Set objFile = nothing
End If
End Sub
</SCRIPT>
<SCRIPT LANGUAGE=VBscript RUNAT=Server>
Sub Application_OnStart ' 홈/가상 디렉토리에 최초로 asp페이지를 요청했을 때, 한 번만 발생. (첫 사용자가 들어왔을 때 실행
strFname=Server.MapPath(".")+"\visit.txt"
' visit.txt가 있는 곳의 경로지정.
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
' CreateObject메서드를 통해 FileSystemObject 객체의 인스턴스를 만들어 사용한다.
Set out =objFile.OpenTextFile(strFname,1)
' CreateTextFile(파일 생성 메서드)를 사용
: strFname의 경로에, 같은 파일의 이름이 이미 존재할 경우, 덮어쓰기가 가능하도록
Application("visit") = out.ReadLine
' 텍스트 파일안에 있는 숫자(out의 값)를 읽어와서, Application("visit")에 저장한다.
Set out = nothing
Set objFile = nothing
End Sub
Sub Application_OnEnd ' 디렉토리에서 모든 사용자의 세션이 끝나게 되면, 실행되어진다.
strFname=Server.MapPath(".")+"\visit.txt"
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
' CreateObject메서드를 통해 FileSystemObject 객체의 인스턴스를 만들어 사용한다.
Set out =objFile.CreateTextFile(strFname,true)
' CreateTextFile(파일 생성 메서드)를 사용
: strFname의 경로에, 같은 파일의 이름이 이미 존재할 경우, 덮어쓰기가 가능하도록
out.WriteLine(Application("visit"))
' 텍스트 파일에 현재까지의 방문자의 총 수를 저장한다.
Set out = nothing ' out 해제
Set objFile = nothing ' nothing 해제
End Sub
Sub Session_OnStart ' 매 사용자가 들어올 때마다, 각각 이를 거치게 됨.
strFname=Server.MapPath(".")+"\visit.txt"
Application.Lock
Application("visit") = Application("visit") + 1
Application.UnLock
If Application("visit") MOD 5 =0 then
' 방문자가 5명씩 방문할 때마다, 그때그때 화일을 열어 현재까지의 카운트 수를 기입하도록 함. (어플리케이션이 해당 내용을 저장해서, 시스템에 문제가 생기더라도 크게 문제 없도록)
' 마지막에만 해당 내용을 저장하는게 아님
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
Set out = objFile.CreateTextFile(strFname,true)
Application.Lock
out.WriteLine(Application("visit"))
Application.UnLock
Set out = nothing
Set objFile = nothing
End If
End Sub
</SCRIPT>
3) count.asp
카운트를 저장할, 브라우저에서 확인할 asp파일 만들기
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META charset = "UTF-8">
</HEAD>
<BODY>
현재까지의 카운트 : <%=Application("visit")%>
</BODY>
</HTML>
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META charset = "UTF-8">
</HEAD>
<BODY>
현재까지의 카운트 : <%=Application("visit")%>
' visit.txt파일에즉시 변화를 저장하고, 그 값을 count.asp에서 가져와서 출력
</BODY>
</HTML>
* 유의사항 - 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다. - 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다. - 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :) |