728x90
@ResponseBody @ResponseEntity<T> @RequestParam("") 정리
ex) 코드예시
✨ 여기서 잠깐! 알아두고 넘어가자! (HTTP 프로토콜)
- Http 프로토콜 : 인터넷 상 데이터를 주고받기 위한 서버/클라 모델
- http Request 요청 : 클라이언트(브라우저) ➡ 서버
- http Response 응답 : 서버 ➡ 클라이언트(브라우저)
- http 헤더 : Request, Response 처리 위한 중요한 정보를 담고 있음 / 요구사항(요청/응답)
- http 바디 : 내용
*불특정 다수 대상 서비스에 적합
@ResponseBody
- 스프링에서 *비동기 처리시 사용
*비동기 처리?
: 웹에서 화면전환(새로고침)없이 이루어지는 동작 - Response Body?
: 서버 ➡ 클라로 응답할 때 보내는 본문
(RequestBody는 클라 ➡ 서버로 요청할 때 보내는 본문)
: body 안에는 데이터를 담아서 보내야 한다. - 비동기식 ajax
: 서버와 클라 통신을 위해 JSON 형식의 데이터를 주고받는 것
ex) 아이디 중복체크는 비동기 처리로 이루어지기 때문에 페이지가 새로고침되지 않은 상태에서 결과값을 가져온다.
@ResponseEntity<T>
- httpEntity를 상속받는 RequestEntity와 ResponseEntity
- 서버 ➡ 클라로 응답할 때 결과 데이터와 http 상태코드를 직접 제어할 수 있는 클래스
- Entity ?
: 한 건의 자료를 구성하는 레코드 - ResponseEntity ?
: 사용자의 응답데이터가 포함된 클래스 - ResponseEntity 사용이유
: web을 다루다보면 http 헤더를 다루는 경우가 종종 있다.
: 스프링 MVC는 직접 핸들링하지 않고 작업이 가능하도록 작성되어 있기 때문에 이러한 처리를 위해 사용함
(스프링 MVC의 Controller 가 이러한 기능을 갖고 있음. https://dorothy-yang.tistory.com/171 참고)
: ResponseEntity를 통해 원하는 헤더정보나 데이터 전달을 가능하게 한다. - ResponseEntity에 담기는 정보들
: 결과값, 상태코드, 헤더값을 모두 프론트에 넘겨줄 수 있다.
: 에러코드도 설정해서 보내줄 수 있다.
➡ 때문에 전송하고 싶은 데이터와 함께 전송할 수 있어서 세밀한 제어 필요시 사용
ex) RequestParam으로 받아온 mem_id 값을 확인하여 다시 클라에 아이디 사용 가능 여부를 보내줘야 한다.
서버 ➡ 클라로 응답할 때 사용하는 ResponseEntity<T> 클래스 사용,
레코드 entity에 isUseID값과 상태코드(아이디 사용중이든 아니든 정상적인 OK코드 나오게) 담아서 전달
@RequestParam(" ")
- 요청의 파라미터를 연결할 매개변수에 붙이는 어노테이션
- 파라미터 값으로 @RequestParam을 넣어준다.
- 하나 이상 파라미터에서 사용가능
- httpServletRequest 의 getParameter() 메소드와 비슷
@RequestParam("가져올 데이터 이름") [데이터 타입] [가져온 데이터를 담을 변수]
- 만약, @RequestParam 지정한 키값이 존재하지 않는다면 ➡ BadRequest로 http 400번대 에러가 발생
ex) 클라 ➡ 서버로 가져올 (요청)데이터 mem_id를 매개변수에 넣어주는 것
728x90
'🤯TIL > Spring' 카테고리의 다른 글
[Spring_JAVA] @AllArgsConstructor 란? / 사용 이유 (0) | 2022.12.21 |
---|---|
[Spring] @log4j 란? / @log4j 와 System.out.println (0) | 2022.12.21 |
[게시판 만들기] 코드 총정리 (*ONLY CRUD) (0) | 2022.12.11 |
[게시판 만들기 - 4 ] 게시판 수정하기 / 삭제하기 (0) | 2022.12.09 |
[게시판 만들기 - 3 ] 게시판 읽기 (0) | 2022.12.06 |