SpringMVC

[SpringMVC] Server응답 처리방식(Request, Model, ModelAndView)

wookjae 2021. 9. 5. 11:48

ViewResolver ?

* 컨트롤러에서 전달받은 View이름으로 클라이언트에게 응답 할 Jsp페이지를 찾아 선택하며, 응답 데이터를 분석하여 
응답결과를 생성하여 전달하는 역할을 한다.

* SpringMVC에서는 Client의 요청을 처리할 시, HttpServeltRequest객체를 JSP(Java Server Pages)로 전달한다. 

* ViewResolver에서 이를 활용하여, JSP(Java Server Pages) 처리 시 응답데이터를 활용하여,  최종결과를 생성한다.

 

 

Dispatcher Servlet, Handler Mapping, Controller, View ?

* Client 로 부터 HTTP요청이 들어올 시, DispatcherServlet에서 요청을 확인 후, 해당 요청에 맞는 Controller를 Handler Mapping으로 부터찾아 Request를 대상 Controller에게 전달한다. Controller는 Client에 대한 요청을 처리 한 이후, DispatcherServlet에 응답결과를 전달하게 되며 DispatcherServlet은 해당 응답결과 관한 View결과에 관하여 ViewResolver에게 요청하게 되며 해당 결과를 받아 최종적으로 Client에게 웹 브라우저 View(화면)을 보여주게 된다.

 


RESPONSE(응답) 결과처리 연습..

 

 

 

1. 클라이언트 응답(Response) 컨트롤러 생성 

* 화면 응답결과(Response)를 처리하는 3가지 방식: (HttpServletRequest,  Model,  ModelAndView)  

* 화면으로 응답할 데이터를 셋팅하는 setAttribute, addAttribute, addObject 공통적인 ('key', 'value') 구조이다.

* Model 객체를 의존성 주입받아, 셋팅하게 되면 HttpServletRequest객체에 담겨 JSP로 전달할 수 있다. 

* ModelAndView는 Model 사용시 값을 셋팅하는 기능과 Clinet로 응답할 View를 지정하는 역할을 처리한다.

* HttpServletRequest,  Model,  ModelAndView 모두 Request영역에 할당되며 ViewResolver을 통하여 전달 처리된다.

 

 

 

2. ResTestController 요청(Request) 부분생성 

Front to Server (ResTestController Request..)

 

 

 

3. ResTestController 응답결과 확인 (브라우저 URL Test)

* HTTP GET방식의 쿼리스트링으로 전달된 <a href="{contextPath}/resTest1?name=jwj&age=34">

파라미터는 ${param."key"} 로 사용한다.  

* HttpServletRequest,  Model,  ModelAndView 모두 Request영역에 할당된다. 

* 서버로부터 Request영역에 전달된 데이터 사용 시, ${requestScope."key"} 로 사용한다 (requestScope 생략가능)