만족

[JSP] 쿠키(Cookie) 본문

[JSP] 쿠키(Cookie)

Backend/JSP Satisfaction 2018. 1. 2. 15:47


어떤 데이터를 서버가 아닌 클라이언트에 서버의 명령에 의해서 저장된 것을 쿠키(Cookie)라고 한다.

데이터를 클라이언트의 로컬에 저장하여 보안상 문제가 있기 때문에, 요즘에는 잘 사용하지 않는 기술이다.


데이터가 별로 중요하지 않고, 서버의 자원을 절약해야 할 경우에 사용할 수 있는 기법이다.


[Make Cookie]


<%

Cookie cookie= new Cookie("CookieName", "CookieValue");


// set valid time of cookie

// parameter is second.

cookie.setMaxAge(60*60);


// add cookie to response object

response.addCookie(cookie);

%>


쿠키 객체를 만들고, 쿠키의 유효 기간을 설정한다.


쿠키의 속성이 모두 정의되면 response객체에 쿠키를 추가한다.


[Get Cookies]


<%

Cookie[] cookies= request.getCookies();

  if(cookies!= null){

for(int i=0; i<cookies.length; i++){

out.println("cookies["+i+"] Name= "+ cookies[i].getName()+ "<br/>");

out.println("cookies["+i+"] Value= "+ cookies[i].getValue()+"<br/>");

out.println("================================"+"<br/>");

}

   }

%>


Cookie 객체를 가져올 때는 만들 때와는 반대로 request객체에서 받아온다.


Cookie는 여러 개일 수도 있으므로, Array type으로 받는다.


모든 쿠키를 탐색하기 위해 for문을 이용해 모든 Cookie 객체를 탐색한다.


getName()은 쿠키의 이름을, getValue()는 쿠키의 값을 반환한다.



[Delete Cookie]


<%

Cookie[] cookies= request.getCookies();

for(int i=0; i<cookies.length; i++){

String cookieName=cookies[i].getName();

if(cookieName.equals("CookieName")){

out.println("cookies["+i+"] Name= "+ cookies[i].getName()+ "<br/>");

out.println("cookies["+i+"] Value= "+ cookies[i].getValue()+"<br/>");

out.println("This Cookies will be deleted"+ "<br/>");

// This process that set valid period of cookie and save cookie means targetCookie is deleted.

cookies[i].setMaxAge(0);

response.addCookie(cookies[i]);

out.println("================================"+"<br/>");

}

}

%>


쿠키를 직접 삭제하는 어떤 특정 메소드가 존재하지 않는다.


그래서 특정 쿠키의 유효시간을 0으로 만들어 유효하지 않은 쿠키로 만들어 간접적으로 삭제하는 방법을 이용한다.


cookes[i].setMaxAge메소드의 인자값을 0으로 만들고 

유효시간이 만료된 쿠키를 response.addCookie()로 다시 추가해줌으로써 쿠키를 삭제하는 효과를 얻는다.

'Backend > JSP' 카테고리의 다른 글

[JSP] 빈(Bean)  (0) 2018.01.05
[JSP] PreparedStatement  (0) 2018.01.03
[JSP] 데이터베이스 연동  (0) 2018.01.03
[JSP] 포워드(Forward)와 리디렉션(Redirection)  (0) 2018.01.03
[JSP] 기초 간단정리  (0) 2018.01.02


Comments