카테고리 없음

[JSP] 쿠키 사용하기

사악미소 2012. 4. 18. 20:36
반응형

■ '쿠키(Cookie)'는 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼 때 함께 전송된다.

■ 쿠키는웹 서버와 웹 브라우저 양쪽에서 생성할 수 있다.

■ 웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 데이터를 읽어올 수 있다.

■ 일단 웹 브라우저에 쿠키가 저장되면, 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송한다.




  ● 쿠키를 사용하기 위해서는 먼저 쿠키를 생성해야 한다. JSP 프로그래밍에어서 쿠키는 주로 웹 서버 측에서 생성한다.

  ● 생성된 쿠키는 응답 데이터에 함께 저장되어 전송된다.




  ● 웹 브라우저는응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관한다.

  ● 쿠키의 종류에 따라 메모리나 파일로 저장된다.






  ● 웹 브라우저에 쿠키가 저장되면, 웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송한다.

  ● 웹 서버는 웹 브라우저가 전송한 쿠키를 사용해서 필요한 작업을 수행할 수 있다.



JSP에서 쿠키 생성하기

<%
    Cookie cookie = new Cookie("cookieName", "cookieValue");
    response.addCookie(cookie);   
  // response.addCookie() 메서드를 사용하면

  // response 기본 객체는 웹 브라우저에 쿠키 정보를 추가한다.
%>



※ Cookie 클래스가 제공하는 메서드

메서드

리턴타

설       명

 getName()

String

 쿠키의 이름을 구한다.

 getValue()

String

 쿠키의 값을 구한다.

 setValue(String value)

void

 쿠키의 값을 지정한다.

 setDomin(String pattern)

void

 이 쿠키가 전송될 서버의 도메인을 지정한다.

 getDomain()

String

 쿠키의 도메인을 구한다.

 setPath(String url)

void

 쿠키를 전송할 경로를 지정한다.
 getPath()

String

 쿠키의 전송 결로르 구한다.

 setMaxAge(int expiry)

void

 쿠키의 유효 시간을 초 단위로 지정한다.
 음수를 입력할 경우 웹 브라우저를 닫을 때 삭제된다.
 getMaxAge()

int

 쿠키의유효시간을 구한다.

쿠키 데이터를 저장하는 JSP 페이지(StoreCookies.jsp)(

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    response.addCookie(new Cookie("name", "John"));
    response.addCookie(new Cookie("gender", "male"));
    response.addCookie(new Cookie("age", "15"));
%>
<title>쿠키 데이터 저장</title>
쿠키 데이터가 저장되었습니다.



출력결과




 


쿠키 값 읽어오기

Cookie[] cookie =  request.getCookies();

 -. request.getCookie() 메서드는 Cookie 배열을 리턴하며, 존재하지 않을 경우에는 null을 리턴한다.





쿠키 데이터를 읽는 JSP 페이지(ReadCookies.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% Cookie[] cookies = request.getCookies(); %>      // ← 모든 쿠키값을 가지고 온다.
<%!    // 멤머 메서드
    private String getCookieValue(Cookie[] cookies, String name) {      // String name의 값은 쿠키 데이터 읽기의
                                                                                          // "name", "gender", "age"값이 담아진다.
        String value = null;
       
        if (cookies == null) {
           
            return null;
        }
       
        for (Cookie cookie : cookies) {
           
            if (cookie.getName().equals(name)) {      // name 쿠키인지의 여부를 판단(name 쿠키의 존재 여부 확인)
               
                return cookie.getValue();
            }
        }
       
        return null;
    }
%>
<title>쿠키 데이터 읽기</title>
이름 : <%= getCookieValue(cookies, "name") %><br/>
성별 : <%= getCookieValue(cookies, "gender") %><br/>
나이 : <%= getCookieValue(cookies, "age") %>



출력결과




반응형