반응형

쿠키가 무엇인지 궁금하다면?

maxtime1004.tistory.com/61

 

[JSP] 쿠키(Cookie)란?

▶ 쿠키(Cookie) 쿠키란 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법 · 쿠키의 특징 ① 정보가

maxtime1004.tistory.com

 

 

① SetCookieValue 서블릿 생성

package sec02.ex01;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Date;

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;

/**
 * Servlet implementation class SetCookieValue
 */
@WebServlet("/set")
public class SetCookieValue extends HttpServlet {
	private static final long serialVersionUID = 1L;
    

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		Date d = new Date();
		Cookie c = new Cookie("cookieTest", URLEncoder.encode("JSP 프로그래밍 입니다.","utf-8"));
		c.setMaxAge(24*60*60);
		response.addCookie(c);
		out.print("현재시간 : " + d);
		out.print("문자열을 Cookie에 저장합니다.");
	}

}

 

Cookie 객체를 생성한 후 cookieTest 이름으로 한글 정보를 인코딩해서 쿠키에 저장하고, 유효기간을 설정한 후

생성된 쿠키를 브라우저로 전송함

 

※ c.setMaxAge( ) 안 숫자가 음수이면 Session Cookie

 

 

 

② getCookieValue 서블릿 생성

package sec02.ex01;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

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;

/**
 * Servlet implementation class GetCookieValue
 */
@WebServlet("/get")
public class GetCookieValue extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    	throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		Cookie[] allValues = request.getCookies();
		
		for(int i=0; i<allValues.length; i++) {
			if(allValues[i].getName().equals("cookieTest")) {
				out.println("<h2>Cookie 값 가져오기 : "
						+ URLDecoder.decode(allValues[i].getValue(),"utf-8"));
			}
		}
	
	}

}

request의 getCookies( ) 메서드를 호출해 브라우저에게 쿠키 정보를 요청한 후 쿠키 정보를 배열로 가져오고,

배열에서 저장할 때 사용한 쿠키 이름인 cookieTest로 검색해 쿠키 값을 가져옴

 

 

 

SetCookieValue 실행

 

 

 

④ GetCookieValue 실행

 

 

반응형
반응형

▶ 쿠키(Cookie) 

 

쿠키란 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법

 

· 쿠키의 특징

① 정보가 클라이언트 PC에 저장

저장 정보 용량에 제한 존재

보안이 취약

클라이언트 브라우저에서 사용 유무를 설정 가능

도메인 당 쿠키 생성

 

˙쿠키의 종류

속성 Persistence 쿠키 Session 쿠키
생성 위치 파일로 생성 브라우저 메모리에 생성
종료 시기 쿠키 삭제 / 쿠키 설정 값이 종료된 경우 브라우저를 종료한 경우
최초 접속 시 전송 여부 최초 접속 시 서버로 전송 최초 접속 시 서버로 전송되지 않음
용도 로그인 유무 또는 팝업창을 제한할 때 사이트 접속 시 세션 인증 정보를 유지할 때

 

 

 

▶ 쿠키 기능 실행 과정 

 

① 브라우저로 사이트에 접속

② 서버는 정보를 저장한 쿠키를 생성

③ 생성된 쿠키를 브라우저로 전송

④ 브라우저는 서버로부터 받은 쿠키 정보를 쿠키 파일에 저장

⑤ 브라우저가 다시 접속해 서버가 브라우저에게 쿠키 전송을 요청하면 브라우저는 쿠키 정보를 서버에 넘겨줌

⑥ 서버는 쿠키 정보를 이용해 작업

 

 

 

▶ 쿠키 API 

 

- java.servlet.http.Cookie 를 이용

- HttpServletResponse의 addCookie( ) 메서드를 이용해 클라리언트 브라우저에 쿠키를 전송한 후 저장

- HttpServletRequest의 getCookie( ) 메서드를 이용해 쿠키를 서버로 가져옴

 

˙ 쿠키 클래스의 여러가지 메서드

     getComment( ) : 쿠키에 대한 설명을 가져옴

     getDomain( ) : 쿠키의 유효한 도메인 정보를 가져옴

     getMaxAge( ) 쿠키 유효 기간을 가져옴

     getName( ) : 쿠키 이름을 가져옴

     getPath( ) : 쿠키의 디렉터리 정보를 가져옴

     get Value( ) : 쿠키의 설정 값을 가져옴

     setComment(String) : 쿠키에 대한 설명을 설정

     setDomain(String) : 쿠키의 유효한 도메인을 설정

     setMaxAge(int) : 쿠키 유효 기간을 설정함

     setValue(String) : 쿠키 값을 설정함

     setPath(String) : 쿠키의 디렉터리 정보를 설정함

 

쿠키 생성 시 setMaxAge( ) 메서드 인자 값의 종류를 지정해서 파일에 저장하는 Persistence 쿠키를 만들거나

메모리에만 저장하는 Session 쿠리를 만들 수 있습니다.

즉, setMaxAge( ) 메서드를 이용한 퀴 저장 방식은 다음 두가지로 나눌 수 있습니다.

인자 값으로 음수나 setMaxAge( ) 메서드를 사용하지 않고 쿠키를 만들면 Session 쿠키로 저장됩니다.

인자 값으로 양수를 지정하면 Persistence 쿠키로 저장됩니다.

반응형

+ Recent posts