1. Cookie Util 자바파일
package util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Cookie;
import java.util.Map;
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.io.IOException;
public class CookieUtil {
private Map cookieMap = new java.util.HashMap();//쿠키를 쌍으로 저장하는 맵
public CookieUtil(HttpServletRequest request) { //생성자, 인자로 request를 받는다
Cookie[] cookies = request.getCookies();//인자로 받은 request로부터 쿠키배열을 읽어 온다.
if (cookies != null) {//배열에 값이 있다면
for (int i = 0 ; i < cookies.length ; i++) {//그 길이만큼 반복하면서
cookieMap.put(cookies[i].getName(), cookies[i]);//쿠키맵에 쌍으로 저장시킨다.
}
}
}
public static Cookie createCookie(String name, String value)//name 와 value의 인자를 받는다
throws IOException {
return new Cookie(name, URLEncoder.encode(value, "euc-kr"));//쿠키를 생성하여 리턴한다., 인자 둘
}
public static Cookie createCookie( //쿠키의 인자로 네개의 값을 받는다 , 패치와 시간이 추가
String name, String value, String path, int maxAge)
throws IOException {
Cookie cookie = new Cookie(name,
URLEncoder.encode(value, "euc-kr"));
cookie.setPath(path);
cookie.setMaxAge(maxAge);
return cookie;
}
public static Cookie createCookie(//인자로 다섯개의 값을 받는다. 도메인이 추가.
String name, String value,
String domain, String path, int maxAge)
throws IOException {
Cookie cookie = new Cookie(name,
URLEncoder.encode(value, "euc-kr"));
cookie.setDomain(domain);
cookie.setPath(path);
cookie.setMaxAge(maxAge);
return cookie;
}
public Cookie getCookie(String name) {//전달받은 인자의 이름을 가지는 쿠키를 반환
return (Cookie)cookieMap.get(name);
}
public String getValue(String name) throws IOException {//전달받은 인자의 이름을 가지는 쿠키를 구한후 그 쿠키의 value를 반환
Cookie cookie = (Cookie)cookieMap.get(name);
if (cookie == null) return null;
return URLDecoder.decode(cookie.getValue(), "euc-kr");
}
public boolean exists(String name) {
return cookieMap.get(name) != null;//전달받은 인자의 이름을 가지는 쿠키의 존재유무를 리턴
}
}
2. 위에 쿠키 유틸을 사용하여 쿠키를 생성하는 jsp
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page import = "util.CookieUtil" %><!--쿠키에 대한 처리를 맡고 있는
클래스파일을 불러온다 -->
<%
response.addCookie(CookieUtil.createCookie("name", "김태희"));
response.addCookie(
CookieUtil.createCookie("id", "madvirus", "/chap09", -1));
%>
<html>
<head><title>CookieUtil사용예</title></head>
<body>
CookieUtil를 사용하여 쿠키 생성
</body>
</html>
*쿠키 생성 결과페이지
<%@ page contentType = "text/html; charset=euc-kr" %>
<%@ page import = "jsp.util.CookieBox" %>
<%
CookieBox cookieBox = new CookieBox(request);
%>
<html>
<head><title>Cookie 사용</title></head>
<body>
name 쿠키 = <%= cookieBox.getValue("name") %> <br>
<% if (cookieBox.exists("id")) { %>
id 쿠키 = <%= cookieBox.getValue("id") %> <br>
<% } %>
</body>
</html>
우선 request 객체로부터 쿠키정보를 읽어온다.
(request는 내부 객체 앞에서 애기했듯이 한번의 요청에 값을 저장할 수 있다.
흐름이 맞다면 공통으로도 사용할 수 있다.)
name의 쿠키의 값과 id의 쿠키의 값을 뿌린다.
반응형
'JAVA' 카테고리의 다른 글
JAVA ArrayList 초기화 하는방법 (0) | 2021.12.17 |
---|---|
[Java] 자바 버전 확인 하는법 (0) | 2021.12.13 |
쿠키(Cookie) 사용법?? (0) | 2021.12.12 |
Java Cookie 사용하기 (0) | 2021.12.11 |
Java(자바) 형변환 하기 (0) | 2021.12.10 |
최근댓글