<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 동작과정