제목 : 1. 전체 방문수, 현재 방문수 구하기
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.IO;//파일 사용
namespace Counter
{
/// <summary>
/// Global에 대한 요약 설명입니다.
/// </summary>
public class Global : System.Web.HttpApplication
{
public Global()
{
InitializeComponent();
}
FileInfo objFi;
protected void Application_Start(Object sender, EventArgs e)
{
string strVisit = Server.MapPath(".") + "\\visit.txt";
// 만약, 텍스트 파일이 있으면 그것부터 시작, 없으면 0부터
objFi = new FileInfo(strVisit);
if(objFi.Exists)
{
StreamReader objSr = objFi.OpenText(); // 파일 읽기전용열기
Application["TotalVisit"] = int.Parse(objSr.ReadLine()); //한 줄 읽기
objSr.Close();
}
else
{
// 전체 사용자 전역 변수 초기화
Application["TotalVisit"] = 0;
}
// 현재 사용자 0으로 초기화
Application["CurrentVisit"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
// 전체 사용자 1 증가
Application["TotalVisit"] = (int)Application["TotalVisit"] + 1;
// 현재 사용자 1증가
Application["CurrentVisit"] = (int)Application["CurrentVisit"] + 1;
if((int)Application["TotalVisit"] %10 == 0)
{
SaveCount();
}
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
}
protected void Application_Error(Object sender, EventArgs e)
{
}
protected void Session_End(Object sender, EventArgs e)
{
// 현재 사용자 1 감소
Application["CurrentVisit"] = (int)Application["CurrentVisit"] - 1;
}
protected void Application_End(Object sender, EventArgs e)
{
SaveCount();
}
protected void SaveCount()
{
StreamWriter objSw = objFi.CreateText(); //Stream객체로 핸들링
objSw.WriteLine(Application["TotalVisit"].ToString()); //한줄 쓰기
objSw.Close(); //파일 닫기
}
#region Web Form Designer generated code
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}