분류 전체보기 25

Json, HTTPMessageConverter

클라이언트에서 서버로 데이터를 전달하는 세번째 방법은 HTTP요청 메세지 바디에 데이터를 입력하는 방법이다.그중에서도 Json 형태의 메세지를 전달하는 방법에 대해서 알아보았다.첫번째로 objectMapper를 사용해 Json 형태의 데이터를 자바의 Object형태로 변환시키고, HttpServletRequest와 HttpServletResponse를 사용해 요청과 응답 데이터를 담을 공간을 만들어준다. 그리고 inputStream을 통해 조회를 하고 copyToString을 통해 String형태로 변환시켜서 응답을 반환한다.ObjectMapper가 없는 코드 일때, HTTP Message Converter가 ObjectMapper를 대신 실행한다.@RequestBody를 생략하면 @ModelAttrib..

TIL 2024.12.20

@RequestBody, @ResponseBody, HttpEntity

클라이언트에서 서버로 데이터를 전달하는 세번째 방법은 HTTP요청 메세지 바디에 데이터를 입력하는 방법이다.Spring의 HttpMessageConverter 덕분에 간편하게 Request Data에 접근할 수 있다.HttpEntity를 사용하면 HttpMessageConverter가 동작하여 자동으로 매핑된다.요청뿐만이 아닌 응답까지 HttpEntity 하나만으로 사용이 가능해진다. @RequestBody요청 메세지 Body Data를 쉽게 조회할 수 있다.@RequestHeader요청 헤더 정보 조회@ResponseBody응답 메세지 바디에 값을 쉽게 담아서 전달할 수 있도록 해준다.View가 아닌 데이터를 반환한다.요청 파라미터, HTML Form Data에 접근하는 경우@RequestParam, ..

TIL 2024.12.19

@ModelAttribute

@ModelAttribute Annotation은 저번에 작성했던 HTTP 요청 데이터의 두번째 방법인POST + HTML Form(x-www-form-urlencoded)의 방법이다. (RequestParam과 작성방법과 형태는 비슷하다.)@RequestParam의 Mapping을 사용하게 되면 객체를 생성하는 코드가 필요한데, @ModelAttribute는 이것을 자동으로 생성해 준다. Spring에서는 @RequestParam이나 @ModelAttribute가 생략되면 String, int, Integer 같은 기본 타입은 자동으로 @RequestParam과 Mapping 하고 그 외의 경우는 모두 @ModelAtrribute와 Mapping 한다.

TIL 2024.12.19

@RequestParam

@ResquestParam Annotation은 저번에 작성했던 HTTP 요청 데이터의 첫번째 방법인GET + Query Parameter(=Query String)의 방법이다. (URL ? 뒷부분에 들어가는 키 밸류 형식으로 이루어져 있다.)- “속성값”과 변수명이 같으면 생략이 가능하다. ex) @RequestParam("name") String name *주의할 점*속성값과 파라미터 이름이 완전히 같을 때 어노테이션과 속성값 모두 생략가능하나, 권장하지 않는 방식!!어노테이션은 꼭 쓸 것!!!required = false 값으로 설정되어 있으면 해당 파라미터는 없어도 된다.@RequestParam(required = true) String name,@RequestParam(required = fal..

TIL 2024.12.18

HTTP 요청 데이터

Client에서 Server로 데이터를 전달하는 방법1. GET + Query Parameter(=Query String) 2. POST + HTML Form(x-www-form-urlencoded)POST - HTTPMethod/form-data - PATH(경로)content-type: application/x-www-form-urlencoded - Headerkey1=value1&key2=value2 - Body@Slf4j - 로그를 남기기 위한 annotationresponse.getWriter().write(); - 직접적으로 응답데이터로 접근해서 응답데이터를 만들어낼 수 있다.@Controller - 응답할 view가 있을 때 사용, response 객체를 다루고 직접 데이터를 넣어주게 되면 ..

TIL 2024.12.11