5. JSP 활용 - Cookie(쿠키) 주요 메서드

한승록·2023년 6월 16일
0

JSP 활용

목록 보기
5/5
post-thumbnail

1. setMaxAge

setMaxAge(시간(초))Cookie 생성 시 해당 쿠키 객체의 유지 기간을 정해주는 메서드 입니다.
소괄호 안에는 초단위의 시간이 들어가기 때문에 다음과 같이 시간을 정해 줄 수 있습니다.
	String ip = request.getRemoteAddr();
	Cookie c = new Cookie("ipaddr", ip);
    c.setMaxAge(60 * 60 * 24 * 7);
    // (60(초) * 60(초) = 1시간)
	// (60(초) * 60(초) * 24 = 1일)
	// (60(초) * 60(초) * 24 * 7 = 1주일)




2. URLEncoder, encode

Cookie에는 아스키 문자가 사용 가능합니다.
이 때 사용불가능 문자를 사용하기 위해서는 URLEncoder를 통하여 인코딩하여 사용합니다.
encode는 해당 클래스의 내장 메서드로 인코딩을 하기 위해 사용되며 사용방식은 다음과 같습니다.
<form method="POST">
	<p>
		<select name="theme">
			<option ${theme =='Light Theme' ? 'selected' : '' }>Light Theme</option>
			<option ${theme =='Dark Theme' ? 'selected' : '' }>Dark Theme</option>
			<option ${theme =='Pink Theme' ? 'selected' : '' }>Pink Theme</option>
		</select>
		<input type="submit">
	</p>
</form>
	String theme = request.getParameter("theme");
	theme = URLEncoder.encode(theme, "UTF-8");
    
    Cookie c = new Cookie("theme", theme);
	c.setMaxAge(60 * 5);
	response.addCookie(c);




3. URLDecoder, decode

Cookie를 생성 후 출력하기 전 인코딩되어 있는 값이 저장되어 있다면 URLDecoder클래스를 통하여 디코딩하여 출력합니다.
decodeURLDecoder 클래스의 내장 메서드로 인코딩을 하기 위해 사용되며 사용방식은 다음과 같습니다.
	Cookie[] cs = request.getCookies();	
	for(int i = 0; cs != null && i < cs.length; i++) {
		Cookie c = cs[i];
		String name = c.getName();
		String value = c.getValue();
		
		// 인코딩된 값이 저장되어 있다면 출력하기 전 decode 를 수행해야 한다
		value = URLDecoder.decode(value, "UTF-8");
		
		out.println("<li>" + name + " : " + value + "</li>");
	}
profile
개발 학습

0개의 댓글