* CounterServlet File로 저장 하고 불러오기[실습]
[문제] 방문자수(카운터수)를 파일에 저장해서 방문자수 유지하기
package servlet.lifecycle;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CounterServlet extends HttpServlet{
//변수 저장하는 방법(변수, 파일, DB 세가지 방법이 있다.)
private int visitCount;
//카운트 한 값을 저장 시킬 공간
private String counterFile = "F:\\apache-tomcat-6.0.35\\counter.dat";
//생성자( 객체 생성)
public CounterServlet(){
}
//객체 생성 직후 실행(count값 read 한 다음에 visitCount로 넣기)
public void init(){
DataInputStream dataInputStream = null;
try {
dataInputStream = new DataInputStream(new FileInputStream(counterFile));
visitCount = dataInputStream.readInt();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(dataInputStream!=null){
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//객체 소멸 직전 실행(visitCount 값을 파일로 write)
public void destroy(){
DataOutputStream dataOutputStream = null;
try {
dataOutputStream = new DataOutputStream(new FileOutputStream(counterFile));
dataOutputStream.writeInt(visitCount);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if( dataOutputStream!=null){
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//service() -> doGet() : 클라이언트 요청이 들어올때 마다 호출
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html><head><title>카운터</title></head>");
out.println("<body>");
visitCount++;//카운터의 값을 1증가
out.println("당신은 "+visitCount+" 번째 방문자 입니다.");
out.println("</body></html>");
}
}
* 결과
'프로그래밍 > JSP Programming' 카테고리의 다른 글
2012-4-19 요청파라미터 (0) | 2012.04.19 |
---|---|
2012-4-19 javax.servlet.http.HttpServletRequest과 javax.servlet.http.HttpServletResponse (0) | 2012.04.19 |
2012-4-19 CounterServlet 실습 (0) | 2012.04.19 |
2012-4-18 LifecycleServlet실습 (0) | 2012.04.18 |
2012-4-18 요청과 응답 Servlet (0) | 2012.04.18 |