Skip to content

Web application ARchive

In software engineering, a WAR file (or Web application ARchive1) is a JAR file used to distribute a collection of JavaServer Pages, Java Servlets, Java classes, XML files, tag libraries, static web pages (HTML and related files) and other resources that together constitute a web application.

META_INF vs WEB-INF

ETA-INF는 자바 패키징 기술인 jar의 일부입니다. jar는 기본적으로 파일 포맷이 zip과 동일하지만 zip외에 부가적인 규약이 정해져 있고, 그 중 하나가 META-INF 디렉토리와 그 속 몇몇 파일의 포멧과 용도입니다. 반면에 WEB-INF는 웹 애플리케이션 용으로 (servlet 규격으로) 따로 만들어진 디렉터리죠. 스프링 설정 파일을 META-INF에 두는 이유는 해당 애플리케이션을 war가 아닌 jar로 패키징해서 배포할 수 있기 때문입니다. 보통 애플리케이션을 다중 계층 구조로 만들면서 계층별로 별도로 패키징할 계획이라면, 웹과 관련 없는 계층의 메타 데이터는 WEB-INF가 아닌 META-INF에 두는 것이 맞습니다.

WAR 파일의 구성

document root

  • JSP pages
  • client-side classes
  • archives
  • static Web resources
  • /WEB-INF
    • /WEB-INF/web.xml
      • 웹 어플리케이션의 구조를 정의 : 서블릿이 포함된 경우 루트될 URL 선언, 서블릿에서 참조할 context 값 정의
    • /WEB-INF/classes
      • ClassLoader의 classpath 이다. 이곳은 웹 애플리케이션이 실행될 때 .class 파일이 로드된다.
    • /WEB-INF/lib
      • 이 곳에 있는 JAR 파일들은 ClassLoader의 classpath 에 위치한다.

See also

Favorite site

References