외장 서버, 내장 서버
main() 메서드만 실행하면, WAS도 같이 실행됨Jar, War
main()메서드가 필요, MANIFAST.MF파일에 실행할 메인 메서드가 있는 클래스를 명시해야함java -jar <jar파일 이름>.jar 를 통해 실행서블릿 컨테이너 초기화

WAS를 실행하는 시점에서는 서비스에 필요한 필터, 서블릿을 등록하고, 스프링을 사용한다면 스프링 컨테이너를 만들고, 서블릿과 스프링을 연결하는 디스패처 서블릿을 등록
WAS가 제공하는 기능으로 WAS실행 시점에 이런 초기화 수행 가능(ServletContainerInitializer 인터페이스 이용)
ServletContainerInitializer(인터페이스)
서블릿 컨테이너를 초기화 하는 과정에서 해당 인터페이스를 구현한 클래스의 **onStartup()**메서드를 실행해줌 → 서블릿이 초기화되는 과정에서 필요한 작업 수행
@HandlesTypes
@HandlesTypes(ServletContainerInitializer.class)를 작성하면 WAS가 실행되면서 어노테이션이 사용된 클래스의 onStartUp() 메서드의 인자로 해당 클래스 또는 서블릿 컨택스트 객체를 넣어줌Set<Class<?>>형태로 가져오고, onStartUp()메서드를 실행시켜 가지고 있는 서블릿 컨테이너 객체를 통해 서블릿으로 등록하는 등의 작업 수행
서블릿 등록
WebApplicationInitializer
