본문 바로가기

강의 내용 정리/SpringBoot 개념정리

14강(마지막) - 응답(Response)하는 방법

1. 요청 주소에 따른 적절한 컨트롤로 요청 (Handler Mapping)
GET요청 => http://localhost:8080/post/1

해당 주소 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행한다.

 

 

2. 응답
html파일을 응답할지 Data를 응답할지 결정해야 하는데 html 파일을 응답하게 되면 ViewResolver가 관여하게 된다.
하지만 Data를 응답하게 되면 MessageConverter가 작동하게 되는데 메시지를 컨버팅할 때 기본전략은 json이다.

1. Hello 메서드를 들고있는 A가 Dispatcher Servlet에의해 메모리에 뜸

2. Dispatcher Servlet가 handlerMapping 이라는 애 한테 주소 분배를 하게 넘김

3. handlerMapping이 적절한 메서드 찾아서 스택에 Hello가 실행됨

4. "hello"가 응답되게 될 건데, hello라는 메시지를 응답하면 Data return, 

    hello라는 파일로 응답하고 싶으면 ViewResolver가 hello파일 앞뒤로 각각 web-INF/views/    와   .jsp  를 붙힘

5. 1) 데이터를 리턴할 때 @ResponseBody 어노테이션을 붙힘 ( 붙히면 리턴을 파일로 안보고 데이터로 봄 )

    2) 파일로 리턴할 때 : .jsp 파일을 톰켓이 .html로 바꿔서 리턴해줌 ( 앞에서 배움 ) 

 

 

 

 

#객체 리턴 할 때 ( 메시지 컨버터 이용-앞에서배움 )

 

user 객체를 리턴해야할 때 메시지 컨버터가 JSON으로 바꿔서 리턴해줌 ( 앞에서 배움 )

 

 

 

 

 

# 전체적인 흐름

 

 

1) 톰켓이 실행될 때(=서버 켜질 때) ( 사용자 요청했을 때가 아님 )

   1. 톰켓이 실행될 때 web.xml은 문지기 역할 -> 로딩 되면

   2. ContextLoaderListener가 호출됨

   3. applicationContext.xml 이 읽어질 때 root-context.xml이 읽어지는데 여기에서는 DB관련된 객체들을 컴포넌트                    스캔해서 미리 메모리에 올림

   4. 그 때 ServieImpl, DAO, VO 같은 애들이 올라감 -> 나중에 DB에 연결하여 처리하는 애들 ( 지금은 메모리에 띄워둠)

 

 

 

-------------서버 준비 작업 끝--------------------

 

 

 

2) 클라이언트가 요청 했을 때

   5. 요청이 들어오면

   6. DispatcherServlet이 문지기가 해야할 일을 FrontController로 조금 분배해서 자기가 대신 함.

   7. 웹과 관련된 애들을 메모리에 띄운 뒤 주소 분배

   8. 클라이언트에게 응답할 때 Data로 할지, html 파일로 할지 정하고 응답.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 자료를 참고하였습니다.

 

 

꾸준히 다시보자.

 

1. 220729

2. 220812

3. 220830

4. 220927

 

Recent Posts
Popular Posts
Recent Comments