클라이언트와 서버 데이터 주고 받는

방법 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;
	}

}