web.xml 이란?

web.xml은 Deployment Descriptor(배포 서술자) 라고 합니다.

배포 서술자(DD, Deployment Descriptor) 는 Java EE 스펙으로 웹 애플리케이션의 기본적인 설정을 위해 작성하는 파일입니다.

 

설정 및 구조

<web-app> 태그

web.xml 파일의 루트 앨리먼트 입니다.

웹 애플리케이션의 동작과 관련된 다양한 설정은 해당 태그(<web-app></web-app>) 사이에 위치해야합니다.

<web-app> 태그 시작 부분

ContextLoaderListener

계층별로 나누어진 xml 설정파일을 모두 load 되도록 등록할 때 사용합니다.

servlet에서 제공하는 ServletContextListener를 확장하여 만든 것으로 웹 애플리케이션이 servlet 컨테이너에 로딩될 때 실행되는 리스너입니다.

ContextLoaderListener가 하는 일은 웹 애플리케이션이 로딩될 때 WebApplicationContext를 만드는 것입니다. 이렇게 생성된 WebApplicationContext는 ContextConfigLocation에 설정한 bean 설정 파일을 사용해서 웹 애플리케이션에서 사용할 객체를 관리해주는 역할을 합니다.

contextConfigLocation을 파라미터를 사용하면 Context Loader 가 load할 수 있는 설정 파일을 여러 개(줄바꿈, 컴마, 세미콜론 사용하여 구분) 지정할 수 있습니다. 

ContextLoaderListener 및 contextConfigLocation 예

<servlet> 태그

DispatcherServlet 클래스를 초기화하여 spring의 servlet context를 생성합니다.

cf >Spring은 DispatcherServlet이 모든 요청을 받으며, 요청의 URL과 맵핑하는 Controller에 위임을 합니다. 

초기화 파라미터의 값으로는 servlet 설정 파일(경로 포함)(따로 지정하지 않는다면 초기 설정 파일은 servlet-context.xml)의 위치를 넘겨줍니다.

 

<load-on-startup> 

servlet init() 메서드가 호출되는 시기와 순서를 정하는 것입니다. Context의 웹 애플리케이션이나 web.xml에 설정한 이름으로 서블릿을 호출하기 전에, 미리 tomcat이 시작될 때 해당 servlet을 호출하는 기술을 뜻합니다. 

음수 : 톰캣 실행 시 자동으로 서블릿이 호출되지 않고, 일반적으로 해당 서블릿에 최초 요청이 들어올 때에만 해당 servlet이 초기화 됩니다.

양수 : 0에 가까울수록 먼저 초기화가 됩니다. 같은 숫자가 mapping 되었을 경우 먼저 작성된 servlet부터 초기화가 됩니다.

참조 : https://diaryofgreen.tistory.com/112

<servlet-mapping> 태그

url pattern으로 지정된 값으로 웹 요청이 들어왔을 때 servlet-name에 지정되어 있는 이름의 servlet을 호출하겠다는 의미입니다.

 

<filter> 태그

특정 URL이나 파일 요청 시 먼저 로딩되어 사전에 처리할 작업을 수행하고 해당 요청을 처리하는 웹 애플리케이션 유형 중 하나 입니다.

 

<session-config> 태그

세션을 설정하는 태그입니다.

<session-timeout> 태그를 통해 세션 시간(단위 : 분)을 설정할 수 있습니다. 

 

<error-page> 태그

각 error code 별 page를 설정합니다.

 

<welcome-file-list> 태그

웹 애플리케이션 요청 시 시작 파일을 지정합니다.

 

참조 :   https://seongilman.tistory.com/16

'Spring' 카테고리의 다른 글

스프링 프로젝트 생성하기  (0) 2018.04.15
STS(Spring Tool Suite) Eclipse plugin 설치  (0) 2018.04.15

+ Recent posts