# 총 방문자수찍기
먼저 총방문자 수 증가하는법은 DB테이블 생성후 증가하거나 쿠키등을 이용하는방법등
여러가지가 있다.
먼저 가장 기초적인 방법으로 만들어보자.
프로젝트의 WebContent에서 new -> 폴더 생성 후 그 폴더에서 -> new -> 파일생성
폴더명은 cnt 파일명은 cnt.txt
cnt.txt
=======
0 엔터(줄바꿈필수)
a.jsp
========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.io.*" %>
<%
BufferedReader in=null;
BufferedWriter bw=null;
int totalCNT=0;
try{
String path=application.getRealPath("/cnt/cnt.txt");
in=new BufferedReader(new FileReader(path));
totalCNT=Integer.parseInt(in.readLine());
++totalCNT; // 숫자증가
bw=new BufferedWriter(new FileWriter(path));
bw.write(totalCNT+""); // 문자화?
bw.flush();
}catch(Exception e){
out.println(e);
}finally{
try{
if(bw!=null){ bw.close(); bw=null; }
if(in!=null){ in.close(); in=null; }
}catch(Exception e2){ out.println(e2); }
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%=session.getId() %>
총방문자수 : <%=totalCNT%>
</body>
</html>
하지만 웹브라우저 새로고침할때마다 카운터증가되는문제가있음...
이를 해결하기위해 수정해줌( 하지만 이것도 session을이용하기때문에 웹브라우저 완전끄고 다시키면
이전 session이사라지기때문에 카운터증가됨..)
a.jsp
==========
if(session.getAttribute("abc")==null){ // session에 변수를 줘서 같은 session이면 카운터안함
session.setAttribute("abc","aaa");
++totalCNT;
bw=new BufferedWriter(new FileWriter(path));
bw.write(totalCNT+"");
bw.flush();
}
- 임의의 abc세션을 만들어줌으로서 중복을 방지
'JSP' 카테고리의 다른 글
현재 접속자수 표시 (0) | 2019.03.09 |
---|---|
로그인 화면이동( 화면이동방법 3가지 ) (0) | 2019.03.09 |
웹어플리케이션 초기화 파라미터 사용법(application객체) (0) | 2019.03.09 |
캐쉬삭제법( 삭제라기보단 캐쉬저장 안하는법 ) (0) | 2019.03.08 |
JSP한글전송(인코딩, 디코딩) (0) | 2019.03.08 |