:::: 개발 ::::/└ JSP & SPRING

SPRING COOKIE / JSP COOKIE

nayha 2017. 4. 6. 13:50

http://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/cookie-handling/


spring anotation


package com.logicbig.example;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;

@Controller
public class MyController {

    @RequestMapping("test")
    public String handleTestRequest (Model model,
                                     HttpServletRequest request,
                                     HttpServletResponse response) {


        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            Arrays.stream(cookies)
                  .forEach(c -> System.out.println(c.getName() + "=" + c.getValue()));
        }

        Cookie newCookie = new Cookie("testCookie", "testCookieValue");
        newCookie.setMaxAge(24 * 60 * 60);
        response.addCookie(newCookie);

        model.addAttribute("msg", "test method msg");
        return "my-page";
    }

    @RequestMapping("test2")
    public String handleRequest (
                        @CookieValue(value = "testCookie",
                                            defaultValue = "defaultCookieValue")
                        String cookieValue, Model model) {
        System.out.println(cookieValue);
        model.addAttribute("cookieValue", cookieValue);

        return "my-page2";
    }
}


JSP 쿠키


http://fruitdev.tistory.com/118


쿠키생성

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 
<%
 
    // 회원번호
    String memberNo = "58272836" ;
 
 
 
    // 회원번호를 쿠키에 지정한다
    Cookie c = new Cookie("memberNo", memberNo) ;
     
    // 쿠키에 설명을 추가한다
    c.setComment("회원번호") ;
     
    // 쿠키 유효기간을 설정한다. 초단위 : 60*60*24= 1일
    c.setMaxAge(60*60*24) ;
     
    // 응답헤더에 쿠키를 추가한다.
    response.addCookie(c) ;
%>


쿠키 가져오기

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 
<%
 
    // 쿠키값 가져오기
    Cookie[] cookies = request.getCookies() ;
     
    if(cookies != null){
         
        for(int i=0; i < cookies.length; i++){
            Cookie c = cookies[i] ;
             
            // 저장된 쿠키 이름을 가져온다
            String cName = c.getName();
             
            // 쿠키값을 가져온다
            String cValue = c.getValue() ;
             
             
        }
    }
 
%>



쿠키 삭제

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 
<%
 
    // 전체 쿠키 삭제하기
    Cookie[] cookies = request.getCookies() ;
     
    if(cookies != null){
        for(int i=0; i < cookies.length; i++){
             
            // 쿠키의 유효시간을 0으로 설정하여 만료시킨다
            cookies[i].setMaxAge(0) ;
             
            // 응답 헤더에 추가한다
            response.addCookie(cookies[i]) ;
        }
    }
     
     
    // 특정 쿠키만 삭제하기
    Cookie kc = new Cookie("memberNo"null) ;
    kc.setMaxAge(0) ;
    response.addCookie(kc) ;
 
 
%>



JQUERY 쿠키


http://naminsik.com/blog/1864


<head>와 </head>사이 아래 코드를 삽입한다.

 

1. 쿠키를 저장하는 방법은 아래와 같다.

 werty는 쿠키이름, sunday는 그에 대한 값을 넣는 것이다.

sunday대신에 php 경우 $id 이런식으로 아이디 값을 넣어주면 해당 아이디가 쿠키로 저장된 것이다.

별달리 그냥 팝업창으로 쓸 때 필자는 sunday 부분에 ok라고 넣는다.

그리고 확장형은 아래와 같다.

 expires : 만료일을 의미한다. 위 예제로 보면 7일동안 해당 쿠키를 유지한다는 이야기다.

path : 경로설정이다. 이 사이트의 모든 페이지가 해당된다면 / 이렇게 슬러시만 둔다. 그렇지 않고 특정 폴더라면 경로를 넣으면 된다.

domain : 쿠키가 적용될 도메인이다. 기본 설정은 쿠키가 만들어진 도메인이다.

secure : 기본 설정은 false로 되어있다. true/false 로 입력가능하며 true 일 경우 https 프로토콜만 적용된다.

 

2. 쿠키를 불러오는 방법은 아래와 같다.

저장된 쿠키중에 werty의 값을 불러온다.

 

3. 쿠키를 지우는 방법은 아래와 같다.

 이렇게 하면 저장되어있던 werty의 값을 지운다.

다른 방법으로 만료일을 -1로 바꾸어 초기화시키는 방법도 있다.

 만료일을 지난날로 지정해버리는 방법이다.

두방법다 초기화는 되지만 첫번째에서 주의할 점은 쿠키 저장시 자신이 설정한 도메인(domain)과 경로(path)가 디폴트가 아니라 설정했었다면 적용되지 않는다.

반응형