데브코스 W6D3

백엔드 데브 코스 중 중요한 개념을 정리하거나 과제 개발 일지를 정리한 공간입니다.

DispatchServlet

HTTP 프로토콜로 들어오는 모든 요청을 톰캣과 같은 서블릿 컨테이너가 받게 되면 그 안에서 각 요청을 적절한 컨트롤러에 전달하는 역할을 하는 Front Controller로 web.xml에서 URL 매핑을 등록해야하는 번거로움을 해결해주었다. 대신 모든 요청을 처리하니 정적 파일에 대한 요청까지 가로채기 때문에 /apps의 URI로 접근하면 DispatchServlet이 담당을 하고 /resource의 URI로 접근하는 경우 담당하지 않게 하는 방식이나 요청을 처리할 컨트롤러를 찾을 수 없는 경우에만 Resource 경로를 탐색해서 자원을 탐색하는 방식으로 문제를 개선했다.

Spring MVC의 동작방식


1. DispatchServlet으로 request가 들어온다.
2. 들어온 요청을 처리할 controller를 탐색해서 전달한다.
3. controller는 실행 결과를 model로 저장하고 반환할 view를 지정한다.
4. 지정된 viewDispatchServlet에게 전달받은 model값을 랜더링한다.
5. DispatchServlet는 렌더링된 view를 결과로 response한다.

Thymleaf

컨트롤러가 전달하는 모델을 이용해서 동적으로 화면을 구성하는 뷰 템플릿으로 기존에 사용되는 JSP와 다르게 가독성이 좋고 진입장벽이 낮은 장점을 가지고 있다.

controller class

@RequestMapping("/test")
public String test(Model model) {
    model.addAttribute("test"," hello world");
	return "view";
}

view.html

<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<p th:text="${test}"></p>

DispatchServlet
Spring MVC
Thymleaf

좋은 웹페이지 즐겨찾기