개발 일기
web.xml 이란?? (feat. 기본 설정 해보기) 본문
안녕하세요.
오늘은 스프링이나 서블릿 등의 웹프로그래밍을 코딩할 때 사용되는 web.xml에 대해 알아보고 간단한 설정을 적어보겠습니다.
web.xml 파일은 모든 web application은 반드시 하나를 가져야하며,
위치는 WEB-INF폴더 아래에 있습니다.
web.xml 파일의 설정은 web application 시작 시 메모리에 로딩되며,
브라우저가 서블릿에 접근하기 위해 톰캣(was)에 필요한 정보를 알려줘야 해당하는 서블릿을 호출 할 수있고
그 맵핑 대상을 정하는 곳이 web.xml입니다.
web.xml에 작성되는 내용
A. 인코딩 필터 설정
<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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- encodingFilter
Spring Project는 설치 시 UTF-8 지원이 안되있는 상태이기 때문에 별도의 코드를 추가함으로써 EncodingFilter에 UTF-8을 추가함으로써, UTF-8을 통한 한글 load를 가능하게 해줍니다.
B. DisptcherServlet 설정(application-config.xml,mvc-config.xml) _ ContextLoaderListener 을 이용 공통빈 설정 가능
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/mvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
DispatcherServlet
https://mangkyu.tistory.com/18
Dispatcher란 '급파하다, 보내다' 라는 사전적 의미를 가지고 있으며, DispatcherServlet이란, Servlet으로 보내다 라고 명료하게 이해하시면 됩니다.
클라이언트의 요청에 따라서 Container들이 요청을 받고 처리하게 되는데, Front-Controller(DispatcherServlet)에서 서버로 들어오는 모든 요청을 처리하게 됩니다.
* Front-Controller : 서블릿 컨테이너 앞에서 서버로 들어오는 클라이언트의 요청을 받아서 처리해주는 컨트롤러(MVC Pattern)
ContextLoaderListener
https://devbox.tistory.com/entry/Spring-webxml-%EA%B8%B0%EB%B3%B8-%EC%84%A4%EC%A0%95
DispatcherServlet 을 Mapping하며, ContextLoaderListener는 DispatcherServlet 보다 우선적으로 동작하고 로드되며, 비즈니스 로직을 정의한 Spring Setting을 우선적으로 Load하게 됩니다.
1) init- param
해당 파라미터 값은 지정해준 서블릿 내에서만 쓸 수 있는 값이다. 변수로 생각하자면 Private 지역변수와 유사하다고 생각할 수 있을 것 같다.
해당 선언은 web.xml에 <servlet> 태그 내에 위치한다.
2) context -param
context-param은 init-param 그 이상으로 전역 즉 모든 서블릿에서 사용할 수 있는 파라미터 값이다. 위에서 init-param이 지역변수라면 해당 파라미터는 전역변수라고 생각하면 될 것 같다.
그렇기 때문에 <context-param>은 어느 하나의 서블릿 태그안에 속하는 것이 아닌 독립적으로 추가해준다.
출처: https://erjuer.tistory.com/20 [주에르 블로그]
오늘은 web.xml 설정에 관한 내용을 정리해보았습니다.
각 기능에 대한 상세 내용은 다른 블로그에 정리가 잘 되어 있는걸 인용해왔습니다.
감사합니다.
'Spring' 카테고리의 다른 글
springMVC설정 순서 정리! (feat. application-config.xml와 mvc-config.xml 비교) (0) | 2021.10.06 |
---|---|
DI(Dependency Injection) 의존성 주입에 대해 알아보자! (1) | 2021.09.29 |
스프링 프레임워크(Spring Framework)의 주요 기능 및 특징 (0) | 2021.09.28 |
모델 2방식과 Spring MVC란? (0) | 2021.09.02 |
Spring 설치하는 방법 (feat. Spring의 시작!) (0) | 2021.09.01 |