記錄

Spring) Spring Framework MVC Basic Flow 본문

Web/Spring framework

Spring) Spring Framework MVC Basic Flow

surhommejk 2018. 4. 30. 00:23




















다 같은 그림인데 밑으로 내려올 수록 더 심화되고 자세한 흐름이다.

기본적인 Spring MVC는 이 그림이 나타내는 flow가 전부라고 할 수 있다.



cf. Controller의 각 메소드에서 최종적으로 String값을 리턴하면서 클라이언트가 가도록 할 페이지를 넘길때 "redirect:"가 붙이는 이유?


내가 착각했던 부분은 Controller의 각 메소드가 return을 할 때 매핑된 .do 와 같은 처리 요청을 하면 다시 메소드로 갈 것이라고 생각했는데 잘못된 생각이었다. Controller에서 return을 하게 될 경우 view를 찾아 보내는 것을 피할 수 없다. 즉, Controller의 메소드 리턴값이 String인 경우 이는 무조건 view의 주소이다.(".htm" or ".do" 와 같은 것을 return한다고 해서 절대로 Controller의 매핑된 메소드가 반응하지 않는다) 만약 "hello"와 같은 의미 단위의 String을 리턴할 경우 view resolver가 존재한다는 의미이다.


따라서 보여줄 view페이지가 존재하면 바로 .jsp와 같은 것을 return하면 되는 것이다. 반대로 만약 DB처리든 데이터 처리든 뭔가 로직을 수행하는 경우에는 새로운 페이지를 다시 요청받게 강제해야 하며 이 코드가 return "redirect:noticeDetail.htm?seq="+n.getSeq();와 같은 것이다.


Comments