티스토리 뷰

response 는 Data(MessageConverter) 와 HTML(ViewResolover) 가 있다.

ViewResolver

html파일을 응답할지 Data를 응답할지 결정해야 하는데 html 파일(우리가 쓰는건 jsp파일)을 응답하게 되면 ViewResolver가 관여하게 된다.

예를들어 설명하자면

  • DispatcherServlet이 컴포넌트를 스캔하다 A라는 클래스가 떴다.
  • A 클래스는 hello() 라는 함수가 있다.
  • hello()함수는 String "hello" 를 리턴한다.
  • 이제 요청한 쪽으로 "hello"라는 메시지가 reponse 될것이다.
  • 근데 "hello"라는 메시지가 아니라 hello 라는 파일을 받고 싶으면 어떡해?
  • 이때 ViewResolver가 관여를 하여 hello의 앞에 prefix를 붙이고 뒤에 확장자를 붙인다.
    • 예를들면 WEB-INF/views/hello.jsp
    • ViewResolver가 어떻게 관여할지 직접 설정할 수 있다.

 

MessageConverter

위에서 html 파일이 아니라 Data를 응답하게 되면 MessageConverter가 작동하게 되는데 메시지를 컨버팅할 때 기본전략은 json이다.

  • 만약에 위의 리턴값이 객체일 경우
  • MassageConverter가 객체를 json으로 바꾼다.
    • cf) json으로 바꿔주는 MassageConverter는 jackson이다.

 

여태까지 배운 개념들을 정리한 이미지이다.

출처 : https://asfirstalways.tistory.com/334

 

지금 당장 모든 로직을 정확하게 알 필요는 없다.

중요한것은

  • web.xml이 문지기 역할을 한다
  • web.xml의 일이 너무 많아서 DispatcherSelvet에게 일을 조금 넘긴다.
  • 미리 띄워놔야하는 애들은 그전에 ContextLoaderListener로 띄워놓는다. 

정도의 추상적인 개념을 알고 있으면 된다.

출처 : https://www.youtube.com/watch?v=GCx65TdiA44&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=14 

 

 

후기

 

 이것으로 Spring boot 프로젝트를 생성하기 전 알아야할 기본 개념정리가 마무리되었다. 아직 이해하지 못한 부분도 상당하지만 이는 프로젝트를 진행하면서 다듬을 생각이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함