본문 바로가기

[JSP]

[JSP]10월 28일 CookieBox 만들기예제


쿠키박스 클래스는 앞서 올린 login예제 에서 쿠키저장,삭제,조회 등을 보다 편리하게 사용하기위해 메소드를 담은 클래스이다. 이클래스의 생성자, 메소드를 이용해 좀더 보기좋은 login 예제로 바꿀 수 있다.


public class CookieBox {

private Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();

//쿠키는 K, V형태로 데이터를 담는데,  멥이랑 다르게 탐색이 안되서 매번 for문을 돌아야된다.

그래서 쿠키들을 맵 형태로 관리하면 편리하다.

public CookieBox(HttpServletRequest request){

//현재존재하는 쿠키를 맵에 때려박기

Cookie[] cookies = request.getCookies();

if(cookies != null)

{

for(Cookie c : cookies)

{

cookieMap.put(c.getName(), c);

}

}

}

public Cookie getCookie(String name)

{

return cookieMap.get(name);

}

public String getValue(String name) throws UnsupportedEncodingException

{

Cookie cookie = cookieMap.get(name);

if(cookie == null)

return null;

return URLDecoder.decode(cookie.getValue(), "UTF-8");

}

public static Cookie createCookie(String name, String value)

throws UnsupportedEncodingException

{

Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));

return cookie;

}

public static Cookie createCookie(String name, String value, int maxAge)

throws UnsupportedEncodingException

{

Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));

cookie.setMaxAge(maxAge);

return cookie;

}

}