web.xml은 웹 애플리케이션의 전역 설정 파일
• DispatcherServlet 등록 → 스프링 MVC 구동
• ContextLoaderListener 등록 → Root ApplicationContext 구동
• 필터/리스너 등록 → 인코딩, 보안, 로깅 등 공통 처리
• 서블릿 매핑 → URL과 서블릿 연결
1. 웹 애플리케이션의 시작점 설정
• 웹 애플리케이션이 Tomcat 같은 서블릿 컨테이너에 배포될 때 가장 먼저 읽히는 설정 파일
• 어떤 Servlet, Filter, Listener를 사용할지 정의
2. DispatcherServlet 등록
• 웹 계층 담당
• Spring MVC의 핵심인 DispatcherServlet(Front Controller)을 등록하는 곳
<!—- 모든 요청이 DispatcherServlet으로 들어가도록 연결—->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-name>/WEB-INF/…/dispatcher-servlet.xml</param-name>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3. ContextLoaderListener 등록
• Root ApplicationContext를 띄워주는 역할
• 비즈니스 로직 및 인프라 계층 담당(보통 서비스, DAO, DataSource 같은 Bean들은 여기서 초기화)
1. ContextLoaderListener + DispatcherServlet (정석 구조)
• Root Context (ContextLoaderListener)
• DataSource, TransactionManager, DAO, Service
• Web Context (DispatcherServlet)
• Controller, ViewResolver
2. DispatcherServlet만 사용하는 경우
• DispatcherServlet이 로딩하면서 DB 설정(iBatis Config)까지 다 들고감
• Root Context 없이 Web Context 하나로 통합 운영
• 초기 스프링/레거시 프로젝트에서 자주 보이는 방식
4. 필터(Filter) 설정
• 인코딩, 보안, 로깅 같은 기능을 전역으로 걸 수 있음
5. 서블릿 매핑
• 특정 URL 패턴을 어떤 서블릿이 처리할지 정의
'Spring' 카테고리의 다른 글
[Spring] 스프링 프레임워크 / 스프링 모듈 (0) | 2025.08.20 |
---|---|
[Spring] 스프링 빈 중복 에러(UnsatisfiedDependencyException, NoUniqueBeanDefinitionException) (0) | 2024.08.20 |
[Spring] log4jdbc 라이브러리로 sql 로그 파라미터 값까지 출력하기 (0) | 2023.08.08 |
[Spring] 로깅 프레임워크 개념 및 종류(+log4j2 설정) (0) | 2023.07.28 |