티스토리 뷰
@WebServlet("/cookie03")
public class CookieTest3 extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>get방식으로 요청됨</h1>");
Cookie[] list = request.getCookies();
boolean hasCount = false;
for(int i=0;list!=null && i<list.length;i++){
if(list[i].getName().equals("count")){
hasCount = true;
list[i].setValue(String.valueOf((Integer.parseInt(list[i].getValue())+1)));
out.println("방문횟수:"+list[i].getValue());
}
}
if(!hasCount){
Cookie c = new Cookie("count","1");
c.setMaxAge(60*60*60);
response.addCookie(c);
out.println("방문횟수:1");
}
out.close();
/*Cookie[] list = request.getCookies();
int cnt=0;
for(int i=0;list!=null && i<list.length;i++){
if(list[i].getName().equals("count"))
cnt = Integer.parseInt(list[i].getValue());
}
cnt++;
Cookie c = new Cookie("count",cnt+"");
c.setMaxAge(60*60*24*10);
response.addCookie(c);
out.println("현재 방문 횟수 : "+cnt);
out.close();*/
}
}
=> 위의 코드와 아래의 코드의 차이점과 문제점 분석
-아래 코드에서는 동일한 name으로 쿠키를 덮어쓰게 됨
-위 코드에서는 기존의 쿠키의 value를 변경하게 됨
-위 코드에서 setValue를 통해 기존의 value를 변경하게 되는 경우, response.addCookie를 다시 해주어야 한다.
'Jsp&Servlet' 카테고리의 다른 글
forward 후 이후 실행 (0) | 2017.01.24 |
---|---|
Session 관련 메서드들 (0) | 2017.01.24 |
쿠키 생성 및 저장 오류 및 문제점, 해결 (0) | 2017.01.24 |
Cookie와 HttpSession (0) | 2017.01.23 |
Connection, Statement, ResultSet 의 close 문제 (0) | 2017.01.23 |