Backend Web/Spring Boot · Framework

Controller

sofiaaa 2020. 11. 19. 15:03

spring.web.ch01

@Controller 
public class MainController { //IoC 대상 
	@GetMapping("/")
	public String Hello(Model model) { /
		model.addAttribute("now", ZonedDateTime.now()); //현재 시각
		return "ch01/hello";//뷰를 이름으로 지칭한다.
	}
}

 

@Controller 

component이지만, controller라는 것을 알려줘야 한다. request를 받을 수 있는 객체로 판단하도록 한다.

 

@GetMapping("/")

contoller 주소를 할당해야 request 들어왔을 매핑 가능하다.

 

 

<%@ page language='java' contentType='text/html; charset=utf-8' pageEncoding='utf-8' isELIgnored='false' %> 
접속 시각 : ${now}

ch01/hello

AppConfig dispatcher 파라미터로 받아드리는 용도로 사용하고 있다.

dispatcher(여기서 container) AppConfig 읽어드리고, 의뢰받은 이름은   ch01/hello이다.

여기서 /WEB-INF/view/ch01/hello.jsp 해석하고

dispatcher 안에 들어 있는 모델은 now이다.

 

작동 원리

client 화면과 같은  localhost/spring.web/ 주소로 request 보낸다.

localhost덕분에 tomcat 받게 되고, spring.web 덕분에 app 받고, 마지막 /덕분에 dispatcher 받는 것이다.

dispatcher 리퀘스트 받으면, dispatcher contextPath 이후의 주소에 관심 있고, 그것이 /이다.

dispatcher 매핑을 controller 찾고, GetMapping("/") 발견하다. 여기서 Hello '핸들러' 되는 것이다.

Hello 핸들러는 now라는 모델을 준비하고, 뷰를 준비한다.

dispatcher now라는 모델을 request 담아서 ch01/main 보낸다.

모델 값을 now 투입 시켜서 최종으로 HTML코드 완성 시켜서 response 만든다.

response controller에서 dispatcher에서 tomcat 거쳐서 클라이언트에 간다.

 

 

반응형

'Backend Web > Spring Boot · Framework' 카테고리의 다른 글

[JUnit5] No ParameterResolver registered for parameter 에러  (0) 2022.04.26
[Spring] Gradle  (0) 2022.04.24
Maven 필수 개념  (0) 2020.11.19
Maven  (0) 2020.11.19
spring  (0) 2020.11.19