티스토리 뷰
제어의 역전 (Inversion of Control)
- 개발자가 객체를 생성하고, 메서드를 호출하던 JVM에서와는 다르게
- WAS는 직접 객체를 생성하고 메서드를 호출한다. 이를 제어의 역전이라고 한다
- 제어의 역전(Inversion of Control)은 프로그램의 제어 흐름 구조가 거꾸로 되는 것이다
- 프로그램은 main() 에서 시작해 사용할 오브젝트를 결정하고 그 오브젝트를 만들어 메서드를 호출하는 일을 반복한다.
- main() 이 어떤 객체를 생성하고, 메소드를 호출하는 등 개발자가 능동적으로 결정하고 만드는 구조이다
- 반면, 제어의 역전은 기능만 구현해 놓으면 알아서 호출되어 사용되는 수동적인 구조를 갖는다
- 객체의 생성부터 소멸까지 객체의 모든 생명주기를 개발자가 아닌 컨테이너(WAS)가 담당한다
- 컨테이너(WAS)가 알아서 필요한 객체를 생성하기 위해서는 가이드 라인이 필요하다
web.xml
- 웹 어플리케이션이 실행되면, 컨테이너(WAS)는 모든 서블릿의 객체를 미리 만들어둔다 (Ready on)
- 그리고 클라이언트로부터 요청이 들어오면, 미리 만들어두었던 객체중에 요청에 해당하는 서블릿 객체를 호출해 사용한다
- 서블릿마다 url이 매핑되어 있으며, 클라이언트의 동적 요청에는 서블릿의 url이 반드시 명시되어 있어야한다
- 이는 클라이언트가 요청한 url을 확인해서 알맞은 서블릿 객체를 호출해 사용하기 때문이다
💬 컨테이너(WAS)가 알아서 필요한 객체를 생성하기 위해서는 가이드 라인이 필요하다
- 이 때의 객체는 서블릿의 객체를 의미한다
- 웹 어플리케이션이 실행되면 컨테이너는 서블릿의 객체를 미리 만들어 두어야하는데
- 어떻게 만들어야할 지에 대해 가이드 라인에 명시되어 있어야한다
- 이 때의 객체 생성 가이드라인이 바로 web.xml 이다
- Dynamic Web Project를 생성할 때, 설정하지 않으면 자동으로 web.xml이 생성되지 않는다
- ProjectExplorer → 우클릭 → new → Dynamic Web Project → Next → Next
- Generate web.xml deployment descriptor를 체크해주면 위와 같은 디렉토리에 web.xml 기본 파일이 생성된다
- 만약 프로젝트 생성 시, 체크를 하지 않았다면
- JavaEE Tools → Generate DEploymetn Descriptor Stub 를 통해 web.xml파일을 만들어줄 수 있다.
- 이미 web.xml파일을 만들 수 있는 경우 해당 메뉴가 비활성화된다
'BackEnd > JAVA' 카테고리의 다른 글
[Servlet] 서블릿 매핑기법 - web.xml의 구조(2) 서블링 매핑 (0) | 2021.11.30 |
---|---|
[Servlet] 서블릿 매핑기법 - web.xml의 구조(1) welcome file (0) | 2021.11.29 |
Thread (0) | 2021.11.18 |
이클립스 프로젝트 jdk버전 변경하기 (0) | 2021.11.15 |
ColletionAPI (0) | 2021.11.12 |
댓글