목표 : JSON 요청 -> JSON으로 데이터 받기 1. JSON으로 요청 2. 컨트롤러 @ResponseBody @PostMapping("/request-body-json-v3") public HelloData requestBodyJsonV3(@RequestBody HelloData helloData) throws Exception { log.info("username={}, age", helloData.getUsername(), helloData.getAge()); return helloData; } HTTP의 컨버터가 요청한 Content-type이 application/json 이라는 것을 인식하고 객체에 맞게 변환해 준다. @RequestBody는 생략 불가능이다. 만약 @RequestBody..
목표 : http 응답 관련 공부 ( ResponseEntity, ResponseStatus 등) package hello.springmvc.basic.response; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.w..
JSON으로 HTTP 요청 메시지에 대한 컨트롤러에서의 처리 방법 import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Controller; import org.springframework.util.StreamUtils; import java.nio.charset.StandardCharsets; /** * {"username":"hello", "age":20} * content-type: application/json */ @Slf4j @Controller public class RequestBodyJsonController { private ObjectMapper objectMapper = new..
HttpEntity HTTP header, body 정보를 편리하게 조회 메시지 바디 정보를 직접 조회 요청 파라미터를 조회하는 기능과 관계 없음(@RequestParam X , @ModelAttirbute X) package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframew..
| 목표: @ModelAttribute의 사용 방법 URL의 파라미터로 username, age 값 요청이 왔을 경우. @ResponseBody @RequestMapping("/model-attribute-v1") public String modelAttributeV1(@RequestParam String username, @RequestParam int age) { HelloData helloData = new HelloData(); helloData.setUsername(username); helloData.setAge(age); log.info("username={}, age={}", helloData.getUsername(), helloData.getAge()); log.info("helloDat..
목표 : 요청 파라미터 > @RequestParam 사용방법 및 활용 예제 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; im..
consumes는 클라이언트가 서버에게 보내는 데이터 타입을 명시한다 produces는 서버가 클라이언트에게 반환하는 데이터 타입을 명시한다
목표 : Servlet으로 HTTP 응답데이터를 JSON으로 뿌리는 방법 package hello.servlet.basic.response; import com.fasterxml.jackson.databind.ObjectMapper; import hello.servlet.basic.HelloData; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io..
목표 : 서블릿으로 JSON의 데이터를 객체화해서 받아오기 JSON 결과를 파싱해서 사용할 수 있는 자바 객체로 변환하려면 Jackson, Gson 같은 JSON 변환 라이브러리를 추가해서 사용해야 한다. 스프링 부트로 Spring MVC를 선택하면 기본으로 Jackson 라이브러리( ObjectMapper )를 함께 제공한다. package hello.servlet.basic; import lombok.Data; @Data public class HelloData { private String username; private int age; } package hello.servlet.basic.request; import com.fasterxml.jackson.databind.ObjectMapper; ..
웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션(Web Application) 웹 서버 기능 포함 + (정적 리소스제공가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적HTML, JSON 서블릿, JSP, 스프링 MVC WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다. 예) 톰캣, Jetty, Undertow 웹 시스템 - WEB, WAS, DB 정적 리소스는 웹 서버가 처리 웹 서버는 애플리케이션 로직같은 동적인 처리가필요하면 WAS에 요청을 위임 WAS는 중요한 애플리케이션 로직 처리 전담 서블릿 (서블릿 컨테이너) urlPatterns(/hel..