본문 바로가기
공부/프로그래밍

[Spring] web.xml 설정.

by demonic_ 2017. 4. 18.
반응형

web.xml 은 Deployment Descriptor(배포 서술자) 라고 불리며 환경설정 부분을 담당한다.


출처 : [JSP & Servlet 배경지식] 4. Servlet – Deployment Descriptor(DD)



1. 서블릿파일들은 소스형태로 저장. 주로 비즈니스 로직을 구현.

2. 서블릿파일들이 빌드되어 class 형태로 자동 생성.

3. 사용자에게 보여지는 Front-end 부분 파일.

4. 배포서술자가 위치하고 있으며 없어서는 안되는 파일.

5. 개발시 사용될 라이브러리들을 다운받아 추가 & 사용



DD(Deployment Descriptor(배포 서술자) 란?

WEB-INF 폴더 아래 web.xml 파일명으로 항상 존재하며 서버 시작시 메모리에 로딩. 클라이언트 요청에 의해 컨테이너는 DD를 참조하여 해당 서블릿에 맵핑.



DD에서 설정할 수 있는 것들.


- ServletContext 설정


- Session이 유지되는 시간 설정


- Servlet/JSP에 대한 정의


- Servlet/JSP 매핑


- Mime Type 매핑


- Welcome File list


- Error Pages 처리


- 리스너/필터 설정


- 보안설정 (에러처리)




web-app

<web-app>태그는 web.xml파일의 루트 엘리멘탈이다. 모든 웹 애플리케이션 설정은 이 태그 사이에 위치해야 한다.



display-name

프로젝트명으로 설정됨

<display-name>Web Page Project</display-name>


description

프로젝트에 의한 설명을 기재.

<description>Sample Project</description>



servlet

DispatcherServlet 클래스를 초기화하여 spring의 servlet context를 생성한다.

servlet-mapping은 url pattern으로 지정된 값으로 웹 페이지 요청이 들어왔을 때 servlet-name에 지정되어 있는 이름의 servlet을 호출하겠다는 의미이다.

스프링에서는 DispatcherServlet 이 모든 요청을 받고, 요청의 URL과 맵핑하는 Controller에 위임하는데 예를 들어 Controller class에 @RequestMapping("/admin") 으로 annotation(어노테이션) 지정되 있는 메서드가 있다면 URL://URL주소/admin.html  요청시 DispatcherServlet 에 해당하는 URL과 mapping 되는 것을 찾은 후에 해당 메서드에 요청한다.

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring/servlet-context.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.html</url-pattern>

</servlet-mapping>



ContextLoaderListener

스프링 설정 정보를 읽는다. 이때 1개로 충분한 경우 dispatcher에 지정하면 되지만 2개 이상일 경우 contextConfigLocation 초기화 파라미터에 설정파일 목록을 지정한다.

<listener>는 반드시 등록해놓아야 한다.

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

      /WEB-INF/spring/profiles.xml

      /WEB-INF/spring/dbmanage-context.xml

    </param-value>

</context-param>



Listener

특정 이벤트가 발생하면 호출되어 처리하느 ㄴ객체로 인터페이스만 제공되므로 클래스는 직접 구현해야 한다.

<listener>

  <listener-class>{구현된 클래스 경로}</listener-class>

</listener>



filter

웹 애플리케이션 전반에 걸쳐 특정 URL이나 파일 요청시 먼저 로딩되어 사전처리할 작업을 수행하고 해당 요청을 처리한다. 주로 캐릭터셋 변경에 많이 사용된다.

<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>



session-config

세션이 유지되는 시간을 설정할 수 있다. (분단위)

<session-config>

<session-timeout>30</session-timeout>

</session-config>



Error Pages

각 Error-code별로 Page를 설정한다.

<error-page>

<error-code>401</error-code>

<location>/resources/error/err401.jsp</location>

</error-page>

<error-page>

<error-code>403</error-code>

<location>/resources/error/err403.jsp</location>

</error-page>

<error-page>

   <error-code>404</error-code>

   <location>/resources/error/err404.jsp</location>

</error-page>

<error-page>

<error-code>500</error-code>

<location>/resources/error/err500.jsp</location>

</error-page>



welcome-file-list

웹 애플리케이션 요청 시에 시작파일을 지정한다.

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>



mime type 

특정파일을 다운로드 시켰을때 다운로드창이 아닌 파일이 깨져보일때 정상적인 다운로드를 위해 설정.

<mime-mapping>

  <extension>xls</extension>

  <mime-type>application/vnd.ms-excel</mime-type>

</mime-mapping>


* mime type

엑셀 97~2003 통합문서 (*.xls)

> application/vnd.ms-excel

엑셀 통합문서 (2007 이상 *.xlsx)

> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

ZIP 파일 (*.zip)

> application/zip

TAR 파일 (*.tar)

> application/x-bzip

워드 97~2003 문서 (*.doc)

> application/msword

워드 문서 (2007 이상 *.docx)

> application/vnd.openxmlformats-officedocument.wordprocessingml.document

PDF 파일 (*.pdf)

> application/pdf

한글 (*.hwp)

> application/x-hwp





이 포스팅이 작성되는데 참조한 사이트

[JSP & Servlet 배경지식] 4. Servlet – Deployment Descriptor(DD)

- [Spring] spring기반 web.xml 설정

반응형

댓글