[JSP] 쿠키 설정 / 가져오기 (Cookie)
by mini_min[JSP] 쿠키 설정 / 가져오기 (Cookie)
✔️ 쿠키란?
: 쿠키는 클라이언트에 대한 정보를 클라이언트의 하드디스크에 저장한 TEXT 파일이다.
: 쿠키는 텍스트 형태로 저장되기 때문에, 변조와 복사가 가능해서 보안성이 없다.
: 쿠키는 서버에서 사용자에게 편리한 기능을 많이 제공하기 위해 사용되고 웹 브라우저에 의해 관리된다.
: 일반적으로 웹 서버당 20개의 쿠키와 총 300개의 쿠키를 지원하며 쿠키는 각각 4KB 크기로 제한될 수 있다.
✨ 쿠키 정보는 javax.servlet.http.Cookie 클래스에 의해 관리된다.
👩💻 쿠키 설정하기
: 쿠키 설정 : 서버가 클라이언트 컴퓨터에 정보를 저장하는 것이다.
: 쿠키의 유효시간은 설정하지 않으면 기본적으로 브라우저 종료시 쿠키도 제거된다.
✨ 쿠키는 String 만 가능하다.
subject 란 이름과 java 라는 값을 가진 쿠키 설정
Cookie c1 = new Cookie("subject", "java");
response.addCookie(c1);
- 쿠키 유효시간을 설정할 수 있다.
Cookie c2 = new Cookie("subject2", "spring");
c2.setMaxAge(60*60); //쿠키 유효시간
response.addCookie(c2);
- 만약, 쿠키 값에 한글이 들어가면 반드시 인코딩 해줘야한다.
브라우저 종료시 사라지는 쿠키 유효시간 설정은 기본 -1 이다.
0 값을 주면, 쿠키 생성과 동시에 제거하는 것이다. 일반적으로 쿠기를 제거할 때 0으로 설정한다.
Cookie c3 = new Cookie("subject3", URLEncoder.encode("오라클", "utf-8"));
c3.setMaxAge(-1); //-1 은 브라우저 종료시 쿠키 제거(기본)
response.addCookie(c3);
- setPath : "/" 를 주면 모든 경로에서 쿠키에 접근 가능하도록 설정한다.
Cookie c4 = new Cookie("tel", "010-1111-1111");
c4.setPath("/"); // 모든 경로에서 쿠키 접근가능하도록 설정
response.addCookie(c4);
👩💻 쿠키 가져오기
getName() : 쿠키 이름
getValue() : 쿠키 값
Cookie[] cc = request.getCookies();
if(cc != null){
for(Cookie c: cc){
String name = c.getName(); //쿠키 이름
String value = c.getValue(); //쿠키 값
if(name.equals("subject3")){
value = URLDecoder.decode(value, "utf-8");
}
out.print("<p>" + name + ":" + value + "</p>");
}
}
👩💻 쿠키 삭제하기
: 쿠키에 setPath 를 설정한 것은 setPath 를 동일하게 설정해줘야 삭제가 가능하다.
Cookie c1 = new Cookie("subject", null);
c1.setMaxAge(0);
response.addCookie(c1);
Cookie c2 = new Cookie("subject2", null);
c2.setMaxAge(0);
response.addCookie(c2);
Cookie c3 = new Cookie("subject3", null);
c3.setMaxAge(0);
response.addCookie(c3);
Cookie c4 = new Cookie("tel", null);
c4.setPath("/"); //패스 준건 패스 줘야지 삭제가 가능하다.
c4.setMaxAge(0);
response.addCookie(c4);
🔒 쇼핑몰 오늘 본 상품 목록 가져오기
: 특정 상품을 눌러서 상품 상세 페이지가 열렸을 때, 쿠키가 찍히도록 설정하면 오늘 본 상품 목록을 출력할 수 있다.
- 쇼핑몰 상품 목록
<h3>쇼핑몰</h3>
<table border="1" style="width: 400px; border-collapse: collapse;">
<tr height="30" align="center" bgcolor="#eee">
<td width="250">상품명</td>
<td>가격</td>
</tr>
<tr height="30" align="center">
<td>
<a href="sp1.jsp">컴퓨터</a>
</td>
<td>1,000,000</td>
</tr>
<tr height="30" align="center">
<td>
<a href="sp2.jsp">TV</a>
</td>
<td>1,100,000</td>
</tr>
<tr height="30" align="center">
<td>
<a href="sp3.jsp">핸드폰</a>
</td>
<td>1,800,000</td>
</tr>
</table>
<hr>
- 상품별 쿠키 설정
Cookie c1 = new Cookie("sname1", URLEncoder.encode("컴퓨터", "utf-8"));
response.addCookie(c1);
- 쿠키 가져오기 ✨✨
Cookie[] cc = request.getCookies();
if(cc != null){
for(Cookie c: cc){
String name = c.getName(); //쿠키 이름
String value = c.getValue(); //쿠키 값
if(name.startsWith("sname")){
value = URLDecoder.decode(value, "utf-8");
out.print("<p> 오늘 본 상품 " + ":" + value + "</p>");
}
}
}
'JSP' 카테고리의 다른 글
[Servlet] 방명록 기능 Servlet (0) | 2022.10.10 |
---|---|
[JSP] 세션 Session 설정하기 지우기 (0) | 2022.10.10 |
[JSP] 글 수정,삭제 Servlet 서블릿/DAO (0) | 2022.10.06 |
[JSP] 글 리스트 Servlet 서블릿/DAO (1) | 2022.10.05 |
[JSP] Servlet 서블릿 작성 + 글쓰기 Servlet 서블릿/DAO (0) | 2022.10.05 |
블로그의 정보
개발자 미니민의 개발로그
mini_min