프로그래밍

Spring MVC 공부(5)

RainIron 2022. 5. 28. 23:34
반응형

※ 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";
}

f12를 누른후 [Application] - [Cookies] 에서 쿠키 저장한 것을 확인할 수 있다.

 

// 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";
	}

load cookie 을 누르면 콘솔창에서 다음과 같이 출력된다.

@CookieValue(쿠키이름) 을 사용하여 바로 받을 수 있다.(인코딩, 디코딩 모두 한 번에 해결!)


※ Properties

- 애플리케이션을 개발할 때 프로그램 실행 중 절대 변하지 않는 값을 properties 파일에 작성하고, 이를 활용

- 이클립스에 property editor가 있어서 한글로 작성할 경우 유니코드 형식으로 변환 가능하다.

- http://propedit.sourceforge.jp/eclipse/updates 

 

Downloading File /eclipse/updates - Properties Editor - OSDN

Free download page for Project Properties Editor's updates.This editor can directly edit property files written in Unicode reference characters, eliminating the need to convert to Unicode. In a...

osdn.net

[help] - [install new software] - [Add] 버튼 클릭
설치

  • @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