
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>org.prgms.kdt.order.servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
@WebServlet(value = "/*", loadOnStartup = 1)
public class TestServlet extends HttpServlet {}
public class OrderWebApplicationInitializer implements WebApplicationInitializer {
private static final Logger logger = LoggerFactory.getLogger(OrderWebApplicationInitializer.class);
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
logger.info("Starting Server...");
var servletRegistration = servletContext.addServlet("test", new TestServlet());
servletRegistration.addMapping("/*");
servletRegistration.setLoadOnStartup(1);
}
}

Dispatcher Servlet이 받음Dispatcher Servlet은 요청을 처리해줄 컨트롤러와 메서드가 무엇인지 Handler Mapping에게 물어봄Handler Mapping은 xml이나 java 파일의 어노테이션을 참고해서 해당 요청에 대한 컨트롤러와 해당되는 메서드를 mapping해줌Dispatcher Servlet이 Handler Adapter에게 결정된 컨트롤러와 해당 메서드에 대한 실행을 요청Handelr Adapter가 결정된 컨트롤러와 해당 메서드를 어댑터 패턴으로 적절히 실행컨트롤러가 생성한 Model과 view name을 Dispatcher Servlet에게 전달view resolver를 통해 view name을 적절한 view로 mappingview에 Model을 전달한 다음 view를 DispatcherServlet 에게 전달DispatcherServlet이 해당 view를 HTTP 응답 body에 실어서 클라이언트에게 전달Reference
1. 프로그래머스 백엔드 데브코스
2. Spring MVC 동작과정