Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일기

web.xml 이란?? (feat. 기본 설정 해보기) 본문

Spring

web.xml 이란?? (feat. 기본 설정 해보기)

개발 일기 2021. 10. 4. 20:12

안녕하세요.

 

오늘은 스프링이나 서블릿 등의 웹프로그래밍을 코딩할 때 사용되는 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 설정에 관한 내용을 정리해보았습니다.

각 기능에 대한 상세 내용은 다른 블로그에 정리가 잘 되어 있는걸 인용해왔습니다.

 

감사합니다.

Comments