쿠키
: 웹 브라우저가 보관하는 데이터
<구성요소>
ㆍ이름: 알파벳과 숫자만 가능(콤마, 세미콜론, 공백, 등호기호 x)
ㆍ값: 쿠키의 이름과 관련된 값
ㆍ유효시간: 쿠키 유효시간을 1시간으로 지정하면 1시간 뒤에 쿠키가 삭제된다.
별도의 유효시간을 정하지 않으면 웹 브라우저를 종료할때 쿠키가 삭제된다.
ㆍ도메인: 쿠키를 전송할 도메인
ㆍ경로: 쿠키를 전송할 요청 경로
쿠키 생성
<% Cookie cookie = new Cookie("name", "value");
response.addCookie(cookie); %>
=>
첫 번째 줄은 쿠키의 정보를 담고 있는 Cookie 객체를 생성하고, Cookie 클래스의 첫번째는 이름, 두번째는 값을 지정한다.
객체 생성 후, response 기본 객체의 addCookie() 메서드를 사용하여 쿠키를 추가한다.
(response 기본 객체는 웹 브라우저에 쿠키 정보를 전송한다.)
쿠키 값 불러오기 (= 쿠키 목록)
<% Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for(int i=0; i<cookies.length; i++) {
%>
<%= cookies[i].getName()%> =
<%= URLDecoder.decode(cookies[i].getValue(), "utf-8")%> <br>
<%
}
} else {
%>
쿠키가 존재하지 않습니다.
<% } %>
=>
Cookie[] cookies = request.getCookies(); 메서드는 Cookie 배열을 리턴한다.
(이 메서드는 읽어올 쿠키가 존재하지 않으면 null을 리턴함)
쿠키 값 변경하기
<%
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for(int i=0; i<cookies.length; i++) {
if(cookies[i].getName().equals("name")) {
Cookie cookie
=new Cookie("name", URLEncoder.encode("새로운 값", "utf-8"));
response.addCookie(cookie);
}
}
}
%>
쿠키의 값을 변경합니다.
=>
쿠키의 값을 변경한다는 것은 기존에 존재하는 쿠키의 값을 변경한다는 것이다.
쿠키가 존재하지 않으면 쿠키가 생성되므로, 쿠키 값을 변경하려면 쿠키가 존재하는지 먼저 확인해야 한다.
쿠키 값을 변경하려면 같은 이름의 쿠키를 새로 생성해서 응답 데이터로 보내면 된다.
예시로, 이름이 "name"인 쿠키의 값을 변경하려면 새로운 Cookie객체를 생성해서 응답 데이터에 추가하면 된다.
쿠키 삭제하기
<%
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for(int i=0; i<cookies.length; i++) {
if(cookies[i].getName().equals("name")) {
Cookie cookie
=new Cookie("name", "value");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
%>
쿠키의 값을 삭제합니다.
=>
Cookie클래스는 쿠키를 삭제하는 기능을 별도로 제공하지 않기 때문에,
유효시간을 0으로 지정해 준 후 응답 헤더에 추가하면 웹 브라우저가 관련 쿠키를 삭제하게 된다.
유효 시간을 지정하는 방법은 Cookie 클래스의 setMaxAge() 메서드를 호출할 때 값으로 0을 주면 된다.
'22.05.24~22.11.16 > 7月' 카테고리의 다른 글
07-26 <JSP> : 커스텀 태그 (0) | 2022.07.26 |
---|---|
07-26 <Oracle> : view 와 index 생성, 삭제 (0) | 2022.07.26 |
07-13 <Oracle> : 집계함수 (0) | 2022.07.13 |
07-12 <JSP> : 액션 태그 ( jsp:include, include 디렉토리, jsp:forward) (0) | 2022.07.12 |
07-08 <JAVA > : Vector 사용 (0) | 2022.07.08 |