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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기