728x90
- 사용자 웹 브라우저에 저장되는 데이터
- 요청이 발생 했을 때 웹 브라우저는 쿠키에 저장된 정보를 서버에 전달하게 된다.
- 만약 응답 결과로 쿠키 정보가 전달되면 웹 브라우저가 쿠키에 저장하게 된다.
- 쿠키는 사용자 브라우저에 저장되는 것이므로 브라우저가 전달 해 줄 때만 쿠키 정보를 사용 할 수 있다.
Cookie 저장
- 서버측 코드로 쿠키에 데이터를 저장할 수 있는 방법은 없다.
- 브라우저로 보낼 응답 결과에 저장할 쿠키 정보를 담아 보내면 브라우저에 의해 쿠키가 저장된다.
- Spring MVC에서 쿠키 저장은 Servlet/JSP에서 사용하는 방법으로 처리한다.
Cookie 읽어오기
- 쿠키 정보는 브라우저가 요청을 발생 시켰을 때 요청 정보에 같이 담아서 서버로 전달해 준다.
- Servlet/JSP 에서는 쿠키 정보를 배열로 받아 사용할 수 있다.
- Spring MVC 에서는 쿠키 정보를 주입 받아 사용 할 수 있다.
@Controller
public class testController{
@GetMapping("/save_cookie")
public String save_cookie(HttpServletResponse response){
try{
String data1 = URLEncoder.encode("문자열1", "UTF-8");
String data2 = URLEncoder.encode("문자열2", "UTF-8");
Cookie cookie1 = new Cookie("cookie1", data1);
Cookie cookie2 = new Cookie("cookie2", data2);
cookie1.setMaxAge(365* 24 * 60 * 60); //초단위
cookie2.setMaxAge(365* 24 * 60 * 60);
response.addCookie(cookie1);
response.addCookie(cookie2);
}catch(Exception e){
e.printStackTrace();
}
return "save_cookie";
}
@GetMapping("/load_cookie")
public String load_cookie(HttpServletRequest request){
try{
Cookie [] cookies = request.getCookies();
for(Cookie cookie : cookies){
String str = URLDecoder.decode(cookie.getValue(), "UTF-8");
if(cookie.getName().equals("data1")){
System.out.println("cookie1 = " + str);
}else if(cookie.getName().equals("data2")){
System.out.println("cookie2 = " + str);
}
}
}catch(Exception e){
e.printStackTrace();
}
return "load_cookie";
}
@GetMapping("/load_cookie2")
public String load_cookie2(@CookieValue("cookie1") String cookie1,
@CookieValue("coookie2") String cookie2){
System.out.println("cookie1 = " + cookie1);
System.out.println("cookie2 = " + cookie2);
return "load_cookie2";
}
}
728x90
'Back-End > Spring(Boot)' 카테고리의 다른 글
Intellij - 롬북(lombok) 사용을 위한 설정 (0) | 2021.06.24 |
---|---|
스프링의 의존성 주입 - 기초 (0) | 2021.05.30 |
스프링 ApplicationScope 빈주입 (0) | 2021.03.06 |
스프링 Application Scope (0) | 2021.03.06 |
스프링 Session 빈 주입 (0) | 2021.03.06 |