반응형
⚡️쿠키(Cookie)란
http 프로토콜은 서버와 클라이언트가 요청, 응답 과정을 거치면 연결이 해제되기 때문에
다시 사용할 정보를 쿠키와 세션에 보관해두었다가 다시 사용할 수 있습니다.
그 중, 쿠키는 웹 브라우저가 보관하고 있는 데이터로서 웹 서버에 요청을 보낼 때 함께 전송됩니다.
사용자의 웹 브라우저에 직접 저장되는 방식이라 세션보다 비교적 보안에 취약하지만
자동 로그인같은 기능을 구현할 때나 세션 사용이 제한될 때 유용하게 사용됩니다.
그럼 쿠키 사용 방법에 대해 알아보겠습니다.
📌 쿠키 생성하기
// 쿠키 생성
Cookie cookie = new Cookie("cookieName", "value1");
// 쿠키 값 재설정
cookie.setValue("value2");
// 쿠키 유지 시간 설정(초단위)
cookie.setMaxAge(60*2);
// 쿠키를 클라이언트로 전송
response.addCookie(cookie);
쿠키 클래스를 이용한 객체 생성 과정에서 생성자에서는 new Cookie("쿠키 이름", "값")을 넣어 생성해줍니다.
setValue() 메소드로는 쿠키의 값을 재설정할 수 있습니다.
세션과 마찬가지로 쿠키의 유지 시간을 설정해줄 수 있는데,
setMaxAge() 메소드의 파라미터에 초 단위로 계산됩니다.
📌 쿠키 읽어오기
Cookie[] cookies = request.getCookies(); //client에서 쿠키를 받아옴
String cookieName = "";
String cookieValue = "";
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("cookieName")){
cookieName = cookies[i].getName();
cookieValue = cookies[i].getValue();
}
}
}
request.getCookies()로 클라이언트에서 쿠키 정보를 배열 형태로 받아옵니다.
쿠키의 읽기 관련 메소드에 대해서는
length로 쿠키의 개수,
getName()으로 쿠키의 이름,
getValue()로 쿠키의 값을 반환받습니다.
📌 쿠키 삭제하기
if(cookies != null){
for(int i=0; i < cookies.length; i++){
// 쿠키 유지시간은 0으로 설정
cookies[i].setMaxAge(0);
// 변경된 쿠기 정보를 다시 클라이언트에 전달
response.addCookie(cookies[i]);
}
}
쿠키 삭제는 setMaxAge() 메소드를 사용해 유지 시간을 0으로 설정해 만료시키는 방법이 있습니다.
만약 특정 쿠키를 삭제하려면 if문으로 원하는 쿠키 이름을 리턴 받은 후 설정하시면 됩니다.
마지막으로 만료시킨 쿠키를 클라이언트에 전달한 후 마무리합니다.
반응형
'Java, JSP' 카테고리의 다른 글
[JSP] 서블릿(Servlet)과 서블릿 컨테이너(Servlet Container)의 개념 (0) | 2022.02.16 |
---|---|
[Java / 자바] JDBC로 Oracle SQL 사용법 (0) | 2022.02.15 |
[JSP] 세션(session)의 개념과 사용법 (0) | 2022.02.12 |
[Java/자바] 메소드 참조(method reference), "::" 사용법 (0) | 2022.01.27 |
[Java/자바] 스트림(Stream) 사용법 (0) | 2022.01.25 |
댓글