JSP Servlet 기초(6) 쿠키생성

이번엔 jsp 에서 쿠키를 생성해보겠습니다. 

쿠키란 웹 브라우저에서 서버로 어떤 데이터를 요청하면 서버에서는 알맞는

로직을 수행후 데이터를 웹브라우저에 응답해줍니다. 

그리고 서버는 웹브라우저와의 통신을 끊습니다. 

이렇게 웹브라우저에 응답후 통신을 끊는 것은 http 프로토콜의 특징입니다.


연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로

쿠키를 생성하여 사용합니다 쿠키는 서버에서 생성하여 클라이언트에서

정보를 저장합니다. 그리고 서버에 요청 할 때 마다 쿠키의 

속성값을 참조 또는 변경 할수 있습니다. 


인터넷에서의 쿠키 사용은 많은곳에 사용되는데 쇼핑몰에서 

최근본 상품 등의 목록을 보여줄때에도 쿠키를 사용합니다


먼저 쿠키실습을 위해 이클립스에서 

cookieset.jsp, cookieget.jsp cookiedel.jsp cookietest.jsp 를 만들어줍니다.


먼저 쿠키생성을 위해 cookieset.jsp 에서 


1
2
3
4
5
6
7
8
9
10
<body>
    <%
        Cookie cookie = new Cookie("cookieName""cookieValue");
        cookie.setMaxAge(60*60);    //1시간
        response.addCookie(cookie);
    %>
    
    <a href="cookieget.jsp">cookie get</a>        
</body>
 
cs


위 소스 를 보면 3line 에서는 쿠키객체를 생성한 것입니다

 "cookieName""cookieValue" 이것은 쿠키의 네임과

쿠키의 속성값을 넣은것입니다 

(자세한건 다음글에서 쿠키를 이용한 로그인 에서 쉽게 이해할수있습니다)


setMaxAge 는 쿠키의 유지시간이며 초단위로 넣을수 있다

 60초*60초 이므로 1시간을 의미한다


다음 5line 은 response 객체에 addCookie 를 이용하여 내가 방금 만든

쿠키를 탑재 시키는 것이다.  8line 은 하이퍼 링크로

cookie get을 누르면 cookieget.jsp 로 이동하게된다


다음 cookieget.jsp 를 보면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<body>
 
    <%
        Cookie[] cookies = request.getCookies();
    
        for(int i=0; i<cookies.length; i++) {
            String str = cookies[i].getName();
            if(str.equals("cookieName")) {
                out.println("cookies[" + i + "] name : " + cookies[i].getName() + "<br />");
                out.println("cookies[" + i + "] value : " + cookies[i].getValue() + "<br />");
                out.println("=====================<br />");
            }
        }
    %>
 
<a href="cookiedel.jsp">cookie delete</a>
 
</body>
cs


4line 에서 쿠키를request 를이용해 요청한다. 그럼 cookieset.jsp 에서 

만들어진 쿠키를 가져올수 있는데 방금전 cookieset.jsp 에서는 쿠키를

1개 만들었지만 여러개를 만들었을수도 있다는 가정 하에 

Cookie[] cookies = request.getCookies(); 를 이용하여

쿠키를 배열로 받아 온다.


6line 에서는 받아온 쿠키를 출력하기 위해 for 문을 이용한다

length 는길이를 의미하며 쿠키안의 쿠키 길이만큼(갯수만큼) 반복하여

getName 을 str 에 저장한다.


다음 8line if 문을 통해 str에 저장되어있는 쿠키 중에

cookieName 이 있으면 그 쿠키의 이름(Name)과 속성(Value)을

out.println 를 통해 출력한다 equals는 메소드로 객체끼리

내용을 비교할때 쓰이며 true, false 를 반환한다


cookieset.jsp 를 실행시켜 쿠키를 만들고 cookieget.jsp 에서 

만들어진 쿠키를 확인해보면 


위 처럼 쿠키가 제대로 만들어 진것을 확인할수 있다


다음 쿠키삭제를 위해 cookiedel.jsp 에서 body 부분을 아래와같이 수정한다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<body>
 
    <%
        Cookie[] cookies = request.getCookies();
        for(int i=0; i<cookies.length; i++) {
            String str = cookies[i].getName();
            if(str.equals("cookieName")) {
                out.println("name : " + cookies[i].getName() + "<br />");
                cookies[i].setMaxAge(0);
                response.addCookie(cookies[i]);
            }
        }
    %>
    
    <a href="cookietest.jsp">쿠키확인</a>
 
</body>
 
cs


쿠키삭제를 위해서는 일단 request.getCookies 로 쿠키를 먼저 가저온다

다음 for문을 이용해 cookieget.jsp 에서처럼 쿠키 값들을 str에 저장한다


9line 에서처럼 쿠키의 setMaxAge 에 0을 주어 쿠키 유지시간을 0으로 준다

다음 유지시간이 0이된 쿠키를 response 객체에 addCookie 를 이용해

탑재 시켜준다 이렇게 삭제된 쿠키를 response  해줘야만 다음 페이지로

이어질수 있다 쿠키확인을 위해 15line 처럼 하이퍼링크로 cookietest.jsp를 달아준다

이제 쿠키확인을 눌러 test 페이지로 이동해보면

위와같이 쿠키가 삭제된것을 확인 할수있다.

'JSP' 카테고리의 다른 글

JSP Servlet 기초(8) 세션  (1) 2018.01.29
JSP Servlet 기초(7) 쿠키를 이용한 로그인  (0) 2018.01.29
JSP Servlet 기초(5) response  (0) 2018.01.29
JSP Servlet 기초(4) request + tag  (2) 2018.01.29
JSP Servlet 기초(3) 태그  (0) 2018.01.29

댓글

Designed by JB FACTORY