요런거
@Controller
@RequestMapping("/cookie")
@Slf4j
public class CookieController {
//쿠키 만들기
@GetMapping("create")
@ResponseBody
public String create(HttpServletResponse response) {
//쿠키 준비
Cookie c = new Cookie("k01", "v01");
c.setPath("/");
//쿠키 전달
response.addCookie(c);
return "cookie create~!";
}
//쿠키 삭제
@GetMapping("delete")
@ResponseBody
public String delete(HttpServletResponse response) {
//쿠키 준비
Cookie c = new Cookie("k01", "v01");
c.setPath("/");
//쿠키는 삭제는 못하고, 시간을 지정해야 한다.
c.setMaxAge(0);
//쿠키 전달
response.addCookie(c);
return "cookie delete!!!";
}
// 쿠키 확인(jsp)
@GetMapping("check")
public String check() {
return "cookie/check";
}
// 쿠키 확인(Controller)
@GetMapping("check-ctrl")
@ResponseBody
public String checkctrl(@CookieValue(required=false) Cookie k01) {
// System.out.println(k01.getValue());
if(k01 != null) {
//log로 출력하기
log.info(k01.getValue());
}
return "cookie check at controller!!!";
}
}
<h1>cookie check page</h1>
<!-- el을 활용해서 쿠키를 체크하자 -->
<br>
쿠키 > k01 존재함?? ::: ${ not empty cookie.k01 }
<br>
쿠키 > k01 ::: ${ cookie.k01 }
<br>
쿠키 > k01 > name ::: ${ cookie.k01.name }
<br>
쿠키 > k01 > value ::: ${ cookie.k01.value }
<br>
create 갔다가 check
cookie
의 출처는 클라이언트->서버
에서 클라이언트가 갖고 있는 쿠키!!<body>
<h1>로그인 페이지</h1>
<!-- 아이디 저장하기 -->
<!-- 쿠키가 있으면 아이디를 넣어서 보여주기 -->
<!-- 쿠키가 없으면 그냥 로그인 화면 -->
<c:choose>
<c:when test="${empty cookie.k01 }">
<form action = "" method = "post">
아이디 : <input type ="text" name = "id" placeholder="아이디"/><br>
아이디 기억하기 : <input type="checkbox">
</form>
</c:when>
<%-- 쿠키가 있으면 아이디를 입력해서 보여주기 --%>
<c:otherwise>
<form >
아이디 : <input type = "text" name = "id" placeholder="아이디" value="${cookie.k01.value}" /> <br>
아이디 기억하기 <input type="checkbox" checked/>
</form>
</c:otherwise>
</c:choose>
</body>
@Controller
@RequestMapping("/cookie")
@Slf4j
public class CookieController {
//쿠키 만들기
@GetMapping("create")
@ResponseBody
public String create(HttpServletResponse response) {
//쿠키 준비
Cookie c = new Cookie("k01", "v01");
c.setPath("/");
c.setMaxAge(60 * 60 * 24);
//24시간 동안 보지 않기
//쿠키 전달
response.addCookie(c);
return "cookie create~!";
}
//쿠키 삭제
@GetMapping("delete")
@ResponseBody
public String delete(HttpServletResponse response) {
//쿠키 준비
Cookie c = new Cookie("k01", "v01");
c.setPath("/");
//쿠키는 삭제는 못하고, 시간을 지정해야 한다.
c.setMaxAge(0);
//쿠키 전달
response.addCookie(c);
return "cookie delete!!!";
}
// 쿠키 확인(jsp)
@GetMapping("check")
public String check() {
return "cookie/check";
}
// 쿠키 확인(Controller)
@GetMapping("check-ctrl")
@ResponseBody
public String checkctrl(@CookieValue(required=false) Cookie k01) {
// System.out.println(k01.getValue());
if(k01 != null) {
//log로 출력하기
log.info(k01.getValue());
}
return "cookie check at controller!!!";
}
}
@Controller
public class AdController {
@GetMapping("ad")
public String ad() {
return "ad";
}
}
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
...
<body>
<h1>광고 페이지</h1>
<!-- 광고 띄우기 -->
<!-- 쿠키가 있으면 광고 띄우기 -->
<!-- 쿠키가 없으면 광고 띄우기 -->
<c:if test="${empty cookie.k01}">
<script>
window.open("http://www.naver.com", "test", "width=300, height=300");
</script>
</c:if>
</body>