클라이언트와 서버 데이터 주고 받는
방법 5가지 입니다.
<사용한 구조>
<참고 코드>
<참고 코드>
-목차-
1. 첫번째 방법 - 클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (기본사용법-클라이언트에 url에 아무것도 안넣고 서버에게 요청)
2. 두번째 방법 - 클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (@PathVariable 사용법-클라이언트에서 url에 페이지? 넣고 서버에게 요청)
3. 셋번째 방법 - 클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (기본사용법-클라이언트에서 url에 값을 포함해서 서버에게 요청)
4. 넷번째 방법 - 클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (예를 들어, 클라이언트에서 조건(필터 할 때) 같은것이 여러개가 있으면, 그것들을 서버에게 요청)
참고 - "객체"로 받으면 @RequestBody 사용해줘야함
5. 다섯번째 방법 - 클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (@RequestParam 사용법)
1. 첫번째 방법
클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (기본사용법-클라이언트에 url에 아무것도 안넣고 서버에게 요청) | |
<클라이언트 쪽> |
|
<서버 쪽> |
2. 두번째 방법
(참고) @PathVariable : PathVariable의 경우 url에서 각 구분자에 들어오는 값을 처리해야 할 때 사용합니다.
클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (@PathVariable 사용법-클라이언트에서 url에 페이지? 넣고 서버에게 요청) |
<클라이언트 쪽> |
|
3. 셋번째 방법
클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (기본사용법-클라이언트에서 url에 값을 포함해서 서버에게 요청) |
<클라이언트 쪽> |
<서버 쪽>
|
4. 넷번째 방법
클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (예를 들어, 클라이언트에서 조건(필터 할 때) 같은것이 여러개가 있으면, 그것들을 서버에게 요청) 참고 - "객체"로 받으면 @RequestBody 사용해줘야함 |
<클라이언트 쪽>
|
<서버 쪽>
참고 : D1 클래스 만들어 줘야함 (속성명 똑같아야함) |
5. 다섯번째 방법
클라이언트에서 서버에게 요청하고, 클라이언트에서 응답받기 (@RequestParam 사용법) |
<클라이언트 쪽> |
|
(참고-이렇게 보내도 값이 나오네??)
전체 코드
@Controller
@RequestMapping("/contest")
public class DmContestController {
// 첫번째 방법 - test infos (포스트맨)
@GetMapping("/infos")
@ResponseBody
public String contests() {
return "hello world";
}
// 두번째 방법 - contest info (포스트맨)
// @PathVariable : PathVariable의 경우 url에서 각 구분자에 들어오는 값을 처리해야 할 때 사용합니다.
@GetMapping("/infos11/{page}")
@ResponseBody
public ArrayList<String> contests(@PathVariable int page) {
Map<Integer, ArrayList<String>> db = new HashMap<Integer, ArrayList<String>>();
ArrayList<String> data = new ArrayList<String>();
data.add("harry potter");
data.add("ring of king");
data.add("hello world");
db.put(1, data);
db.put(2, data);
return db.get(page);
}
// 셋번째 방법 - contest info3 (포스트맨)
@GetMapping("/infosField")
@ResponseBody
public String contest(String field) {
String a = field + "받음";
return a;
}
// 넷번째 방법 - contest info2 (포스트맨)
// @RequestBody : 객체 받을 때 사용하는거
// 특정 분야 콘테스트 조회
@GetMapping("/infos12")
@ResponseBody
public List<Integer> contest(@RequestBody D1 d1) {
List<Integer> db2 = new ArrayList<Integer>();
db2.add(d1.test1);
db2.add(d1.test2);
db2.add(d1.test3);
return db2;
}
// like (포스트맨)
// 특정 콘테스트 좋아요
@PostMapping("/like")
@ResponseBody
public List<Integer> like(@RequestParam int test1, @RequestParam int test2, @RequestParam int test3) {
List<Integer> db2 = new ArrayList<Integer>();
// db2.add(test1);
db2.add(test2);
db2.add(test3);
return db2;
}
}
'■ Spring + Boot' 카테고리의 다른 글
[Spring] 구조 1차, 구조 2차 (연습한거) - 코드 (0) | 2020.08.28 |
---|---|
[Spring] 구조 1차, 구조 2차 (연습한거) (0) | 2020.08.27 |
[Spring] 설정 값을 적어주는 곳 -> application.properties (0) | 2020.08.25 |
[Spring] pom.xml에 무언가 반영을 해주었으면 update, install, build 하기 ★ (0) | 2020.08.24 |
[Spring] .m2 (내 컴퓨터에 설치되어 있는 메이븐들) (0) | 2020.08.23 |