
서블릿에서 학습한 내용 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 넘어오는 경우는 @RequestParam , @ModelAttribute 를 사용할 수 없다. (물론 HTML Form 형식으로 전달되는 경우는 요청 파라미터로 인정된다.) 먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어보자. HTTP 메시지 바디의 데이터를 InputStream 을 사용해서 직접 읽을 수 있다. RequestBodyStringController @Slf4j @Controller public class RequestBodyStringController { @PostMapping("/request-body-string-v1") public void requestBody..

HTTP 요청 파라미터 - @ModelAttribute 실제 개발을 하면 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주어야 한다. 보통 다음과 같이 코드 작성 일단 HelloData 생성 HelloData - 요청 파라미터를 바인딩 받을 객체 @RequestParam String username; @RequestParam int age; HelloData data = new HelloData(); data.setUsername(username); data.setAge(age); @Data @Getter , @Setter , @ToString , @EqualsAndHashCode , @RequiredArgsConstructor 를 자동으로 적용해준다. @ModelAttribute 적용..

RequestParamController 中 requestparamV2 /** * @RequestParam 사용 * - 파라미터 이름으로 바인딩 * @ResponseBody 추가 * - View 조회를 무시하고, HTTP message body에 직접 해당 내용 입력 */ // @RequestParam 어노테이션을 사용하여 파라미터를 바로 메서드 매개변수로 받는 방법. @ResponseBody // 메서드의 반환 값이 HTTP 응답 본문에 직접 쓰여야 함을 나타냄. @RequestMapping("/request-param-v2") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") in..

HTTP 요청 데이터 조회 - 개요. 서블릿에서 학습했던 것을 떠올리면서 이걸 스프링이 얼마나 깔끔하고 효율적으로 바꿔주는지 생각해보면 된다. HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 3가지 방법 요청 파라미터 - 쿼리 파라미터, HTML Form HttpServletRequest 의 request.getParameter() 를 사용하면 다음 두가지 요청 파라미터를 조회할 수 있다. 이제 하나씩 알아보자. 먼저 RequestParamController @Slf4j // Lombok을 사용하여 로깅을 위한 Logger를 자동으로 생성. @Controller . public class RequestParamController { // HttpServletRequest와 HttpSe..

HTTP 요청 - 기본, 헤더 조회 어노테이션 기반의 스프링 컨트롤러는 (정말정말) 다양한 파라미터를 지원한다. 예시를 몇 가지 살펴본다. RequestHeaderController @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletRequest response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, // host 대신에 아..
Locale은 Java 및 기타 프로그래밍 언어에서 지역화와 관련된 정보를 다루기 위한 클래스입니다. 여기서 자세한 설명을 제공하겠습니다. Locale은 두 가지 주요 정보를 저장합니다: 언어 (Language): 언어 코드는 특정 언어를 나타내는 부분입니다. 이것은 언어를 식별하기 위한 약어 또는 코드입니다. 예를 들어, 영어는 "en"으로, 한국어는 "ko"로 표시됩니다. 국가 또는 지역 (Country/Region): 국가 또는 지역 코드는 특정 지역 또는 국가를 식별하는 부분입니다. 이것은 국가 또는 지역을 식별하기 위한 약어 또는 코드입니다. 예를 들어, 미국은 "US"로, 캐나다는 "CA"로 표시됩니다. Locale은 위 두 정보를 결합하여 지역 또는 언어 설정을 정확하게 나타냅니다. 예를 들..

회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} RequestHeaderController - 전체 코드 @RestController @RequestMapping("/mapping/users") public class MappingClassController { // 1 @GetMapping public String user() { return "get users"; } // 2 @PostMapping public String addUser() { return "post user"; } // 3 @GetMappi..

MappingController @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } 이 url이 오면 실행이 된다. 매핑 정보(한번 더) 둘다 허용 - 스프링 부트 3.0 이전 다음 두가지 요청은 다른 URL이지만, 스프링은 다음 URL 요청들을 같은 요청으로 매핑한다. 매핑: /hello-basic URL 요청: /hello-basic , /hello-basic/ HTTP..