※ Cookie
- 사용자 웹 브라우저에 저장되는 데이터
- 요청이 발생했을 때 웹 브라우저는 쿠키에 저장된 정보를 서버에 전달한다.
- 브라우저가 전달해 줄 때만 쿠키 정보를 사용할 수 있다.
- 서버측 코드로 쿠키에 데이터를 저장할 수 있는 방법은 없다.
- 브라우저로 보낼 응답 결과에 저장할 쿠키 정보를 담아 보내면 브라우저에 의해 쿠키가 저장된다.
- Spring MVC에서 쿠키 저장은 Servlet/JSP에서 사용하는 방법으로 처리한다.
//Controller.java
@GetMapping("/save_cookie")
public String save_cookie(HttpServletResponse response){
try {
String data1 = URLEncoder.encode("data1", "UTF-8");
String data2 = URLEncoder.encode("data2", "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";
}
// 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("cookie1")) {
System.out.printf("cookie1: %s\n", str);
}
else if(cookie.getName().equals("cookie2")) {
System.out.printf("cookie2: %s\n", str);
}
}
} catch (Exception e){
e.printStackTrace();
}
return "load_cookie";
}
@CookieValue(쿠키이름) 을 사용하여 바로 받을 수 있다.(인코딩, 디코딩 모두 한 번에 해결!)
※ Properties
- 애플리케이션을 개발할 때 프로그램 실행 중 절대 변하지 않는 값을 properties 파일에 작성하고, 이를 활용
- 이클립스에 property editor가 있어서 한글로 작성할 경우 유니코드 형식으로 변환 가능하다.
- http://propedit.sourceforge.jp/eclipse/updates
- @PropertySource, @PropertySources
- 사용할 properties 파일을 지정
@PropertySources({
@PropertySource("/WEB-INF/properties/data1.properties"),
@PropertySource("/WEB-INF/properties/data2.properties")
})
- properties data 가져오기
/*
properties 파일에는
aaa.a1 = 100
으로 저장되어 있음
*/
@Value("${aaa.a1}")
private int a1;
※ Restful API
- 기본 웹 애플리케이션은 응답 결과를 브라우저가 사용하는 코드인 HTML, CSS, JavaScript로 생성하여 전달
- 위의 코드는 브라우저가 화면을 구성하고 기능을 수행하기 위한 코드
- Restful API 서버는 응답결과를 데이터만으로 구성하여 클라이언트로 전달하는 서버
- Web, Mobile PC 등 다양한 플랫폼으로 데이터를 전달할 때 사용한다.
- @RestController
- return 하는 값은 사용할 JSP를 지정한다.
- return 값 자체를 브라우저로 전달하는 응답결과로 생성하여 전송
'프로그래밍' 카테고리의 다른 글
스프링부트, REST, Token (0) | 2023.01.15 |
---|---|
Spring MVC 공부(4) (0) | 2022.05.28 |
Spring MVC 공부(3) (0) | 2022.05.18 |
Spring MVC 공부(2) (0) | 2022.05.05 |
Spring MVC 공부(1) (0) | 2022.05.01 |