출처 : 인프런 강의 중 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
28강 중 9강까지
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
웹개발 기초
웹이 가동될때 url로 클라이언트가 전달한 정보를 controller(mvc)에서 1차적으로 찾고, 없다면 resources/static 에서 찾는다. (정적컨텐츠(단순파일))
따라서 별다른 설정없이 정적컨텐츠를 만들때는 resources 하위 static 폴더 안에 만들어주면된다
mvc (model view controller)로 이루어진 디자인패턴
지난번엔 model에 직접값을 입력했지만, 이번엔 클라이언트로부터 파라미터(name)을 받아 model에 담아주었다.
@RequestParam 어노테이션은 required defalt가 true이기 때문에 name값을 주지않고 전달되면 오류가 발생한다.
RequestParam 파라미터값이 전달되지 않았을 경우 발생하는 에러
2021-03-29 00:29:35.822 WARN 7104 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present]
@ResponseBody로 응답을 보낼때 데이터방식으로 전달하는 법
spring에서 하는 방식과 매우 동일하다, 스프링부트와 문법적인 부분은 같은 자바니까 전혀 문제가 없을 뿐더러 사용하는 어노테이션도 거의 똑같은것 같다.
return값이 객체로 전달될 경우 json 방식으로 반환됨(HttpMessageConverter에서 객체인지 문자인지에 따라 converter 종류가 결정됨)
@ResponseBody 어노테이션은 restAPI 작성시 사용되는 방법중 하나라고만 알고 있었는데,
근본적으로 HTTP의 BODY에 문자 내용을 직접 반환시키기 때문에 viewResolver 대신에 HttpMessageConverter 가 동작한다.
기본 문자처리: StringHttpMessageConverter
기본 객체처리: MappingJackson2HttpMessageConverter
byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
> 참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다.
'Programming > Java \ Spring' 카테고리의 다른 글
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(스프링 빈과 의존관계) (0) | 2021.03.29 |
---|---|
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(회원 관리 예제 - 백엔드 개발) (0) | 2021.03.29 |
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (0) | 2021.03.24 |
for문을 중첩하지 않고 구구단 출력하기 (0) | 2021.03.09 |
윈도우 자바 버전 확인하기, JDK 버전 확인하기 (0) | 2021.03.03 |