<context-param> <!--웹 애플리케이션 전체에서 공유할 설정 값 저장-->
<param-name>contextConfigLocation</param-name>
<!--Spring MVC의 설정 파일 위치를 지정하는 역할-->
<param-value>/WEB-INF/spring/*.xml</param-value>
<!--/WEB-INF/spring/ 폴더 안에 있는 모든 .xml 파일을 로드하라는 의미-->
</context-param>
▶ Spring은 /WEB-INF/spring/ 폴더 안에 있는 모든 .xml 파일을 로드
contextConfigLocation 은 파일 위치를 직접 설정 가능.contextConfigLocation 없으면 기본적으로 /WEB-INF/applicationContext.xml 파일을 찾음.<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<!-- bean을 사용하기 위해서 사용하는것 -->
</listener>
▶ Bean을 생성하고 관리할 수 있도록 환경을 설정
<servlet>
<servlet-name>appServlet</servlet-name>
<!-- appServlet이라는 이름의 서블릿을 선언
appServlet이라는 이름은 <servlet-mapping>에서 사용됨 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 모든 웹 요청을 받아서 컨트롤러(@Controller)로 전달 -->
<init-param>
<!-- Spring MVC 설정을 저장한 servlet-context.xml의 위치를 지정한다.이 파일에는 컨트롤러, 뷰 리졸버, 인터셉터 등의 설정이 들어간다.설정 파일이 없으면 DispatcherServlet이 정상적으로 실행되지 않는다. -->
<param-name>contextConfigLocation</param-name>
<!-- DispatcherServlet이 사용할 설정 파일의 위치를 지정 -->
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
<!-- /WEB-INF/spring/appServlet/servlet-context.xml에서 Spring MVC 관련 Bean을 로드 -->
</init-param>
<load-on-startup>1</load-on-startup>
<!-- 서버가 시작될 때 (startup) 서블릿을 미리 로드하라는 설정
1을 설정하면, 서버가 실행되자마자 DispatcherServlet이 로드됨
기본값은 -1이며, 요청이 있을 때만 로드됨 -->
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
▶ 모든 요청(/*)을 DispatcherServlet이 처리하도록 설정.
이 설정 덕분에 사용자가 브라우저에서 http://localhost:8080/home 같은 요청을 보내면 DispatcherServlet이 요청을 받아 컨트롤러로 전달한다.
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<!--모든 요청에 적용-->
</filter-mapping>
▶ 한글 처리, 특수 문자 처리, 다국어 지원