Ajax
- 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고 페이지의 일부만을 로드하는 기법
- 비동기 통신이며, 클라이언트와 서버간에 XML 데이터를 주고받는 기술
- 즉, 최근에 XML 대신 JSON의 형태로 데이터만 주고 받으면서 필요 부분만 새롭게 갱신하는 기법.
.html
반환 -> 메서드에 @ResponseBody 설정 함으로써 데이터만 반환import lombok.Getter;
@Getter
public class Star {
String name;
int age;
public Star(String name, int age) {
this.name = name;
this.age = age;
}
public Star() {}
}
@Controller
@RequestMapping("/response")
public class responseController {
// json 형태는 자바에 존재하지 않는다.
// json 형태로 생긴 String 타입으로 반환한다.
// Content-type(HTTP로 요청할때 데이터 타입도 알려준다) : text/html
// Response body
// {"name": "Robbie", "age" : 95}
@GetMapping("/json/string")
@ResponseBody
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
// Response Header
// Content Type : application/json
// Response Body
// {"name": "Robbie", "age" : 95}
// Spring 내부적으로 자바의 객체를 json형태로 변환한다.
// Star 클래스의 필드 이름을 json의 key로 담겨 있는 데이터를 value로 반환한다.
@GetMapping("/json/class")
@ResponseBody
public Star helloClassJson(){
return new Star("Robbie",95);
}
//@rsponsebody를 따로 안달아도 해당 클래스의 메서드는 자동으로 다 적용된다.
@RestController
@RequestMapping("/response/rest")
public class ResponseRestController {
// [Response header]
// Content-Type: text/html
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/string")
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
// [Response header]
// Content-Type: application/json
// [Response body]
// {"name":"Robbie","age":95}
@GetMapping("/json/class")
public Star helloClassJson() {
return new Star("Robbie", 95);
}
}