* 웹 컨테이너 (Web Container)
JSP와 서블릿을 이용하는 웹 응용프로그램은 자바 언어를 이용해서 작성할 수 있으며, JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 한다. 대표적인 웹 컨테이너로는 자카르타 톰캣, Resin, 웹로직 등이 있다.
웹 컨테이너는 웹 응용프로그램을 위해 보안, 병행성 관리, 라이프 사이클 관리 등의 서비스를 제공한다.
1) 보안(Security)
사용자 인증과 제한된 사용자만 접근할 수 있도록 지원
2) 병행성 관리(Concurrency Management)
여러 개의 작업이 동시에 이루어지는 경우에 쓰레드를 통해서 작업이 보다 효과적으로 이루어지도록 지원
3) 라이프 사이클 관리(Life Cycle Management)
웹 응용프로그램이 생성되고, 실행되고, 삭제되는 라이프 사이클 전 과정을 지원
* WAR(Web Application aRchive)
서블릿으로 작성된 웹 응용프로그램의 클래스 파일은 J2SDK의 jar 명령어를 이용해서 패키징(Packaging)될 수 있고, 이렇게 패키징된 웹 응용프로그램을 WAR(Web Application aRchive)라고 한다. WAR 파일은 확장자가 .war이다. .war 파일은 .jar 파일과 실질적으로 같지만, 일반 JAR 파일과 구분하기 위해서 .war 확장자를 사용한다. WAR 파일로 패키징된 웹 응용프로그램은 표준을 따르는 웹 컨테이너라면 어느 것에서나 실행이 가능하다. 즉, 자카르타 톰캣에서 작성된 웹 응용프로그램을 웹로직에서도 그대로 실행이 된다.
* 웹 응용프로그램 디렉터리 구조
JSP와 Servlet으로 작성한 웹 응용프로그램은 디렉터리 구조와 배치 기술서(Deployment Descriptor)가 표준화되어 있기 때문에 이를 따른다면 일단 작성된 웹 응용프로그램이라면 어떤 웹 컨테이너에서도 실행이 된다. 웹 응용프로그램이 다음과 같은 디렉터리 구조를 갖는 경우에 myapp는 웹 응용프로그램의 이름이고, myapp 디렉터리는 웹 응용프로그램의 최상위 디렉터리가 된다.

같은 웹 응용프로그램에 소속된 서블릿과 JSP 프로그램들을 공통된 실행 환경을 서로 공유한다. 이러한 환경을 컨텍스트(Context)라고 하고, 이 컨텍스를 통해서 웹 응용프로그램 소속된 서블릿과 JSP는 서로 데이터를 공유할 수 있다. 이러한 컨텍스트는 ServletContext라는 인터페이스로 표현된다
출처 : http://4rang.tistory.com/246



