SPRING/Spring MVC 38

[SpringMVC] PRG ( Post/Redirect/Get )

MVC 패턴으로 화면을 구성하다 보면 한 가지 문제가 발생한다. 상품을 등록하는 과정을 예로 들어보자. Client가 /add 경로를 GET방식으로 요청하면 Server는 상품등록 페이지를 Client에게 전달한다. 상품등록 페이지를 받은 Client는 데이터를 입력하고 상품등록 버튼을 누르면 /add 경로를 POST 방식으로 Server에 요청한다. 요청을 받은 Server는 상품등록 비즈니스 로직을 처리하고 그 결과를 담은 상품상세 페이지를 Client에게 전달한다. Client는 등록된 결과를 상품상세 페이지로 전달받으며 마무리된다. 그러나 여기에는 한 가지 문제가 있다. Client의 마지막 요청은 /add 경로의 Post 방식 요청이다. Client가 브라우저를 새로고침하면 /add 경로의 Po..

SPRING/Spring MVC 2023.08.18

[SpringMVC] @ModelAttribute 와 Model

[SpringMVC] HTTP 요청 파라미터 - @ModelAttribute [SpringMVC] HTTP 요청 파라미터 - @RequestParam [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다 lordofkangs.tistory.com 지난 포스팅에서 @ModelAttribute에 대해서 알아보았다. @ModelAttribute는 Get이나 Post 방식으로 들어온 Request 데이터를 특정 객체에 담아 파라미터로 넘겨받는 어노테이션이다. @ModelAttribute 파라미터 선언 @Post..

SPRING/Spring MVC 2023.08.17

[SpringMVC] HTTP 메시지 컨버터 동작원리

JSON 데이터를 JAVA 환경에서 사용하는 방법이다. HTTP Body 영역의 데이터를 InputStream 객체로 이진데이터를 가지고 온 후, 인코딩하고 문자열로 변환하면 JAVA 환경에서 사용가능한 데이터 타입이 된다. 이제 ObjectMapper 객체로 문자열로 표현된 JSON 데이터를 JAVA 객체로 생성하면 된다. 이처럼 HTTP Body 영역의 있는 데이터를 가져오려면 복잡한 과정을 거친다. 반면, GET이나 POST 같은 방식은 Request 객체에서 getParameter 메소드를 제공하기 때문에 JAVA환경에서 바로 사용 가능하지만 그 외 데이터는 HTTP Body 영역에서 직접 가져와야 한다. 응답 또한 마찬가지이다. 응답에 필요한 데이터를 Body 영역에 직접 넣어주어야 한다. 이런..

SPRING/Spring MVC 2023.08.15

[SpringMVC] HTTP 응답 - Controller 반환타입

[SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로 lordofkangs.tistory.com 지난 포스팅에서 서버에서 클라이언트로 보내는 응답(Response)의 종류에 대해서 다루어 보았다. 응답의 종류는 크게 2가지로 나뉜다. 웹브라우저(Client)는 HTML로 화면을 그린다. HTML을 어디서 동적으로 렌더링하느냐에 따라, 서버의 응답이 달라진다. 1) 서버에서 ..

SPRING/Spring MVC 2023.08.14

[SpringMVC] HTTP 요청 메시지 - TEXT, JSON

[SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로세스로 동작하고 다수의 스레드로 병렬처리 lordofkangs.tistory.com 지난 포스팅에서 요청데이터가 전달되는 종류를 알아 보았다. GET 방식은 Header에 담기고 POST, JSON, TEXT는 BODY에 담겨 전달된다. GET과 POST 방식은 담기는 위치만 다를뿐, 전달되는 데이터 형식이 같다. 그리고 HttpServletRequest의 getParameter 메소드로 요청 데이터가 추출되는..

SPRING/Spring MVC 2023.08.12

[SpringMVC] HTTP 요청 파라미터 - @ModelAttribute

[SpringMVC] HTTP 요청 파라미터 - @RequestParam [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로 lordofkangs.tistory.com 지난 포스팅에서 GET, POST 같은 방식으로 요청이 들어오는 경우, @RequestParam 어노테이션으로 요청 데이터를 가져오는 과정을 다루어 보았다. Handler, 즉 Controller는 Request 객체에 직접 의존하지 않고 HandlerAdapter에게 파라미터로 필요한 데이터를..

SPRING/Spring MVC 2023.08.11

[SpringMVC] HTTP 요청 파라미터 - @RequestParam

[SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로세스로 동작하고 다수의 스레드로 병렬처리 lordofkangs.tistory.com 지난 포스팅에서 GET, POST 방식의 경우, 요청 데이터를 HttpServletRequest 객체의 getParameter 메소드로 가져온다고 말했다. @RequestMapping("/request-param-v1") // HttpServlet 사용하기 public void requestParamV1(HttpServletRe..

SPRING/Spring MVC 2023.08.11

[SpringMVC] HTTP 요청 파라미터 - @RequestHeader

[SpringMVC] @RequestMapping, @Controller [SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹 lordofkangs.tistory.com 지난 포스팅에서 현재 가장 많이 사용되고 있는 어노테이션 기반 컨트롤러에 대해서 다루어 보았다. 어노테이션 기반 컨트롤러는 다양한 파라미터를 제공하고 있다. 이번 포스팅에서는 요청의 헤더정보를 가져오는 방법에 대해서 다루..

SPRING/Spring MVC 2023.08.11

[SpringMVC] @RequestMapping의 다양한 속성

[SpringMVC] @RequestMapping, @Controller [SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹 lordofkangs.tistory.com 지난 포스팅에서 @RequestMapping을 다루어 보았다. @RequestMapping은 Handler(Controller)임을 명시하는 어노테이션으로, 하나의 Handler(Controller)에 여러 개의 메소드를..

SPRING/Spring MVC 2023.08.10

[SpringMVC] @RequestMapping, @Controller

[SpringMVC] HandlerAdapter [SpringMVC] MVC 패턴 구현하기(4) - Adapter [SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요 lordofkangs.tistory.com 지난 포스팅에서 HandlerAdapter를 다루면서 @RequestMapping으로 선언된 Handler를 알아보았다. DispatcherServlet은 4가지 HandlerAdapter에 접근 가능하다. 그중 우선순위가 가장 높은 HandlerAdapter는 Re..

SPRING/Spring MVC 2023.08.10