2020.11.29 고급자바 수업 Cookie - 쿠키 카운트를 증가하는 서블릿

 package kr.or.ddit.cookie;


import java.io.IOException;

import java.io.PrintWriter;


import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



//쿠키 변수는 count 로 하기로 한다. 


@WebServlet("/cookieCountServlet.do")

public class CookieCountServlet extends HtpServlet {

    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    request.setCharacterEncoding("utf-8");

    response.setCharacterEncoding("utf-8");

    response.setContentType("text/html; charset=utf-8 ");

    PrintWriter out = response.getWriter();         


//count 라는 쿠키변수가 있는지 검사하기 


    Cookie[] cookies = request.getCookies(); 

    int count = 0 ; 


    if(cookies !=null) {

        for(Cookie cookie : cookies) {

            String name = cookie.getName(); // 쿠키 변수 구하기 


            //count 라는 count 쿠키변수가 있으면 쿠키값( 현재 count 갑) 을 구한다. 


            if("count".equals(name)) {

                String value = cookie.getValue(); 

                count = Integer.parseInt(value); // 정수형으로 변환 

                //count 라는 쿠키가 있으면 count 에 현재값이 들어가 있다. 

            }

        }

    }

//count 값 증가 

count++; 




//증가된 count 값을 이용하여 새롭게 저장할 Cookie 객체 생성한다. 


            Cookie countCookie = new Cookie("count" , String.valueOf(count)); 

       

            countCookie.setMaxAge(24*60*6*1) ; // 1일 


            response.addCookie(countCookie); 

        

            out.println("<html><head><meta charset='utf-8'>"); 

            out.println("<title>Cookie연습 </title></head>"); 

            out.println("<body>"); 

    

            out.println("<h2>어서오세요 당신은 + count + "번째 방문입니다.<h2><br><br>");

            out.println("<a href='" + request.getContextPath() + "/cookieCountServlet.do'>카운트 증가하기 </a> <br><br>"); 

            out.println("<a href='" + request.getContextPath() + "/02/cookieTest02.jsp'> 시작문서로 이동하기 </a> " ) ; 


out.println("</body>");

out.println("</html>");


    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}


}


댓글