[JSP] 17. 방문자 문제 (Cookie 이용)

방문자문제

서블릿에서 쿠키사용한다. (쿠키는 JSP와 서블릿의 차이가 없다)


CookieTest.java (서블릿)


count변수에 1을 입력 -> 전송 -> 출력변수 -> 값변경 -> 출력


1. 1번 요청시,

쿠키정보 생성하고, 클라이언트로 전달한다.

(선택사항)

쿠키의 지속시간 설정한다.

(작성하지않으면, 브라우저종료시 브라우저의 값들이 초기화가 됩니다)



2. 2번 요청시,

클라이언트 쿠키 전달받는다.

전달받은 쿠키 정보를 바꾼다.. (setValue, getValue)

(현재 우리 서버 valInt번재 방문입니다.)


public class CookieTest extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        /*<서블릿에서 사용하는 쿠키: 쿠키는 서블릿이나 JSP나 상관없음>
        //방문자
         
        1. 1번 요청시,
        쿠키정보 생성
        클라이언트로 전달
        
        (선택사항)
        쿠키의 지속시간 설정
        (작성하지않으면, 브라우저종료시 브라우저의 값들이 초기화가 됩니다)
        */
         
        Cookie c = new Cookie("count","1"); //처음에 들어가는 값은 무조건 다 String
        response.addCookie(c);
    
        /*
        2. 2번 요청시,
        클라이언트 쿠키 전달받음
        전달받은 쿠키 정보를 바꿈. (setValue, getValue)
        */
        Cookie[] cookies = request.getCookies();
        for(Cookie coo: cookies){
            if(coo.getName().equals("count")){
                int valInt= Integer.parseInt(coo.getValue())+1;
                
                //현재 우리 서버 valInt번재 방문입니다.
                coo.setValue(String.valueOf(valInt)); //정수 -> String으로 변환
                response.addCookie(coo);//coo의 value가 바뀌었으니 새로 전달받아라.
                
                response.setContentType("text/html; charset=utf-8");
                PrintWriter out= response.getWriter();
                out.println("<h1>현재 우리 서버"+valInt+"번째 방문입니다</h1>");
            }
        }
    }
}