[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;
}
}