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);
}
}
댓글
댓글 쓰기