[SPRING]<web.xml> 기본

수경·2025년 3월 29일

SpringFrameWork

목록 보기
20/24
post-thumbnail
<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>

한글 처리, 특수 문자 처리, 다국어 지원

profile
개발 공부중•••

0개의 댓글