본문 바로가기

문과 코린이의, [ASP] 기록

[문과 코린이의 IT 기록장] ASP Counter - Counter 만들기

반응형

[문과 코린이의 IT 기록장] ASP Counter - Counter 만들기

[문과 코린이의 IT 기록장] ASP Counter - Counter 만들기

 


2022.06.09 - [문과 코린이의, [ASP] 기록] - [문과 코린이의 IT 기록장] ASP 기본 문법 (Now, Hour(), IF~THEN(조건문), ASP 선언 및 생성 / 논리 구문, ASP 데이터 타입, ASP 타입 변환 함수)

 

[문과 코린이의 IT 기록장] ASP 기본 문법 (Now, Hour(), IF~THEN(조건문), ASP 선언 및 생성 / 논리 구문, AS

[문과 코린이의 IT 기록장] ASP 기본 문법 (Now, Hour(), IF~THEN(조건문), ASP 선언 및 생성 / 논리 구문, ASP 데이터 타입, ASP 타입 변환 함수) 2022.06.08 - [문과 코린이의, [ASP]..

vansoft1215.tistory.com

2022.06.10 - [문과 코린이의, [ASP] 기록] - [문과 코린이의 IT 기록장] ASP 개체 모델 (사용자 정보 얻기 ( HTML FORM 태그 , ASP 페이지), ASP 개체 모델, Request 개체 종류, Server 개체 종류, Application 개체 종류)

 

[문과 코린이의 IT 기록장] ASP 개체 모델 (사용자 정보 얻기 ( HTML FORM 태그 , ASP 페이지), ASP 개체

[문과 코린이의 IT 기록장] ASP 개체 모델 (사용자 정보 얻기 ( HTML FORM 태그 , ASP 페이지), ASP 개체 모델, Request 개체  종류, Server 개체  종류, Application 개체  종류..

vansoft1215.tistory.com

2022.06.16 - [문과 코린이의, [ASP] 기록] - [문과 코린이의 IT 기록장] ASP 파일 - FileSystemObject(FSO) (FileSystemObject(FSO) 다루기, 드라이브 다루기, 파일 다루기, 파일 생성, 파일 쓰기, 파일 읽기)

 

[문과 코린이의 IT 기록장] ASP 파일 - FileSystemObject(FSO) (FileSystemObject(FSO) 다루기, 드라이브 다루기,

[문과 코린이의 IT 기록장] ASP 파일 - FileSystemObject(FSO) (FileSystemObject(FSO) 다루기, 드라이브 다루기, 파일 다루기, 파일 생성, 파일 쓰기, 파일 읽기) 2022.06.08 - [문과 코린이..

vansoft1215.tistory.com


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


결과물

 


* 유의사항
- 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다.
- 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다.
- 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :)
반응형