スプリング17クッキー

26990 ワード

クッキー



こんなの.

CookieController


@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!!!";
    }
    
	
}

cookie/delete

  • jspじゃない!!!

  • cookie/check.jsp

    	<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>
    作成とチェック

  • ->したがって、リクエストをリフレッシュするたびに(リフレッシュ)新しいCookieオブジェクトが作成されます.
  • cookie/check-ctrl

  • jspじゃない!!!

  • login.jsp

    <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>
  • cookie/create -> member/login
  • cookie/delete -> member/login

  • 広告n日以内に浮いていない


    CookieController

    @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!!!";
        }
        
    	
    }

    AdController

    @Controller
    public class AdController {
    
    	@GetMapping("ad")
    	public String ad() {
    		return "ad";
    	}
    }
    

    ad.jsp

    <%@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>
  • がなければ広告
  • を出します
  • があれば、広告は
  • です