MVC01 mvc패턴과 객체바인딩

이동영·2023년 4월 25일
post-thumbnail

  • mvc중에서 각각 패키지 혹은 클래스 인터페이스가 mvc패턴 어디에 해당하는지 나타내는 예제이다.
  • @Request어노테이션이 붙은 메소드가 있을 때 브라우저에서 /boardList.do으로 요청이 처리를 해줘야 하는데 그 요청을 처리하는 메소드를 밑에 만든다. 그러면 해당하는 메소드를 실행시켜서 요청을 처리할 수 있다.
  • 이런 작업을 핸들러 맵핑이라고 하는데 브라우저에서 url로 요청이 오면 메소드를 실행시키는데 스프링애서 핸들러맵핑이라는 클래스가 요청URL과 메소드를 연결시켜준다.

  • boardList로 리턴을 하면 프론트컨트롤러에게 String 타입으로 다음 JSP는 이쪽 JSP로 넘어가면 됩니다 라고 view의 이름을 넘겨 그 앞뒤에 접두사 접미사가 붙는다. 접두사는 /WEB_INF/views/가 붙으며 접미사는 뒤에 .jsp가 붙는다. 그래서 최종적으로 리턴을 하면boardList.do라는 맵핑된 주소를 뷰리졸버는/WEB_INF/views/boardList.jsp라는 경로를 만들어 주어 포워딩을 시켜준다.
  • 뷰리졸버클래스도 스프링에서 제공을 해준다. 그런데 뷰리졸버는 이미 스프링에서 만들어져있다.그래서 스프링 컨테이너 내부에서 동작이 된다. boardList라는 String값을 프론트컨트롤러에게 넘겨주면 프론트컨트롤러가 뷰리졸버에게 boardList의 실직적인 전체경로가 어떻게 되니? 라고 물어본다. 그러면 /WEB_INF/views/boardList.jsp 라고 뷰리졸버가 접두사 접미사를 붙여서 반환한다.
  • 그리고 나서 jsp쪽으로 forwarding이 된다.

객체바인딩

  • 컨트롤러가 갖고 있는 데이터를 jsp로 포워딩 해서 가지고 오는데 메모리를 이용해야 한다. 그 메모리가 웹에서는 HttpServletRequest라고 하며 스프링에서는 Model이라는 객체를 이용하여 객체바인딩을 해준다.
  • 컨트롤러에 갖고 있는 데이터를 jsp로 넘겨줄 때 원래는 request객체로 받아야 하지만 jsp에서는 jstl로 ${}로 받는다.
profile
가치를 제공하는 개발자

0개의 댓글