예전에 정적인 페이지만 호출할수 있었다면 시간이 지남에 따라 동적인 페이지도 필요로 하게 된다.
1.WebServer - CGI
= CGI는 요청이 올때마다 프로세스가 생성된다. (쓰레드 보다 훨신무겁고 느리다)
= 요청이 올때마다 같은 구현체를 사용해도 다른 쓰레드면 구현체가 따로따로 생김 -> 그래서 서블릿 사용(싱글톤)
2.WebServer - WebContainer(=ServletContainer) -Servlet구현체(=DispacherServlet)
= 웹 컨테이너는 리퀘스트가 들어오면 쓰레드를 만들어주고 쓰레드와 서블릿 구현체를 연결해줌
= 웹 컨테이너는 서블릿 구현체 메서드를 호출해준다(init,Service,destroy)
-> 각각 URL 마다 서블릿이 생성되며 웹 컨테이너(서블릿 컨테이너) 에게 알려줌 과 동시에 맵핑하기위해 web.xml에 등록해준다.
=> 결론적으로 우리가 코드를 작성하고 (자바) 그것을 스프링이 컨테이너(IOC)에서 관리를 하고 DispatcherServlet이 그 스프링 컨테이너를 주입받아 사용하고 동작한다!!!!