본문 바로가기

Spring/spring mvc33

상품등록 폼에 PRG적용 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 현재 상품등록 폼엔 치명적인 문제가 있습니다. 상품 등록을 하고 새로고침을 누르면 위와 같은 경고창이 뜨고, 무시하고 "계속"을 누르면 상품 목록에 아래와 같은 결과가 나온다.(새로고침 3번 누름) 새로고침은 마지막에 남아있는 http요청을 다시 전송하기 때문에 발생하는 문제입니다. (한번 등록하려 했던 '안경'이 새로고침을 누른만큼 추가로 등록되는 문제) 하여 아래에서 제시한 방법으로 해결할 수 있습니다. PRG 적용 redirect는 서버가 클라이언트의 다음 GET을 강제로 적용해버리는 것이다. 위처럼 redirect:/basic/.. 2021. 6. 30.
컨트롤러 향상시키기 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C item에 대한 정보를 HTML form-post방식으로 보내고 해당 item을 저장하는 방법을 차츰 향상시키는 과정을 보겠습니다. V1 @RequestParam으로 Item의 필드 값들을 일일히 하나씩 가져옵니다. V2 @ModelAttribute를 사용하여 단번에 Item를 생성합니다. V3 가장많이쓰는 방법으로 ModelAttribute의 인자를 생략할 수 있습니다. V4 modelAttribute를 생략할 수도 있습니다. 2021. 6. 30.
HTTP 메시지 컨버터, 요청 매핑 핸들러 어댑터 구조 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리합니다. @ResponseBody 를 사용 • HTTP의 BODY에 문자 내용을 직접 반환 • viewResolver 대신에 HttpMessageConverter 가 동작 • 기본 문자처리: StringHttpMessageConverter • 기본 객체처리: MappingJackson2HttpMessageConverter byte 처리 등등 기.. 2021. 6. 29.
(추가 정리) 스프링 요청 응답 정리 @RestController VS @Controller @Controller: 반환 값이 String이면 뷰 이름으로 인식. 그래서 뷰를 찾고 뷰를 렌더링한다.(뷰를 반환) 하지만 @ResponseBody를 같이 사용하면 데이터 전달 가능! @RestController : 반환 값으로 뷰를 찾지 않고, HTTP 메세지 바디에 바로 입력(주로 JSON전달을 위해 사용한다.) ResponseBody가 붙은 @Controller @Controller는 아래와 같은 실행순서를 가진다. @ResponseBody 가 붙은 @Controller Controller (ResponseBody) @RestController HTTP 요청 데이터 조회 HTTP 요청 메시지를 통해 클라이언트 TO 서버로 데이터를 전달하는 방.. 2021. 6. 28.