<display-name>, <description>
<display-name>springTestProject</display-name>
<description>my spring test project~~~~</description>
- <display-name>: 파일의 title. 보통 프로젝트명을 추가해 사용
- <description>: 어떤 프로젝트를 위한 배포 서술자인지 기록
- 주석과 비슷한 기능을 한다고 생각하면 된다.
<context-param>
<context-param>
<param-name>fileName</param-name>
<param-value>file:///${SMART_HOME}/conf/applicationcontext-*.xml</param-value>
</context-param>
- 사용자가 직접 컨트롤하는 XML 파일 지정
<listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
- 스프링 설정 정보 읽기
<servlet>
<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/controller-*.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
- servlet: java에서 동적 웹 프로젝트를 개발할 때, 사용자의 요청과 응답을 처리해주는 역할
- DispatcherServlet
: Servlet Container에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 처리하는 *Front Controller
(* front controller: 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아 처리해주는 컨트롤러. MVC 구조에서 함께 사용되는 패턴. )
- 서블릿 컨테이너(tomcat)에서 client의 요청을 받는데, 이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 front controller를 Spring에서 정의한 것.
- 공통처리 작업을 Dipatcher Servlet이 처리하고 적절한 세부 컨트롤러로 작업을 위임해준다.
- 기존에는 모든 서블릿에 대해 url 매핑을 하려면 web.xml에 모두 등록해주어야 했다.
- Dispatcher Servlet 이후로 해당 어플리케이션으로 들어오는 모든 요청을 핸들링 해주며 작업을 편리하게 할 수 있어졌다.
- <init-param>: 서블릿의 초기화 파라미터 (서블릿 초기화 작업에 필요한 데이터)
- <load-on-startup>: 서블릿이 초기화되는 순서
- servlet은 브라우저에서 최초 요청시 init() 메소드를 실행한 후 메모리에 로드되어 기능을 수행한다. 최초 요청에 대해 실행시간이 길어지는 단점을 보완하기 위해 등장한 기능이 <load-on-startup>이다.
- 톰캣 컨테이너가 실행되며 미리 서블릿 실행
- 지정된 숫자가 0보다 크면 톰캣 컨테이너가 실행되며 서블릿이 초기화 된다.
- 지정 숫자 = 우선순위. 작은 숫자부터 초기화.
<filter>
<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>
- filter: HTTP 요청과 응답을 변경할 수 있는 재사용 코드
- <filter>: filter를 사용하기 위해선 어떤 필터가 어떤 자원에 대해 적용된다는 것인지 서블릿/JSP 컨테이너에 알려주기 위해 web.xml에 설정하는 것.
- 어플리케이션에서 사용될 필터 지정
- 위 예시와 같은 경우에는 /이하로 들어오는 모든 req에 encodingFilter를 적용한다. encodingFilter는 CharacterEncodingFilter를 사용하고, encoding 값은 UTF-8이라는 의미이다.
<session-config>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
- Deployment Descriptor에서 n분 동안 요청이 없으면 세션 제거
Deployment Descriptor; DD; 배포 서술자
- /WEB-INF/web.xml
- 서버 시작 시 메모리에 로딩
- 클라이언트 요청에 대해 DD를 참조해 해당 서블릿에 매핑
<mime-mapping>
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
- 특정 파일 다운로드 시 파일이 깨져보일 때 정상적인 다운로드를 위해 설정
<error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
- error 발생 시 안내 페이지 지정
<welcome-file-list>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
- 도메인으로만 접근했을 때 최초로 보여질 페이지
참조
myblog.opendocs.co.kr/archives/436
egloos.zum.com/springmvc/v/504151
'Develop > Spring+JPA' 카테고리의 다른 글
[Spring] @JsonProperty (2) | 2021.03.08 |
---|---|
[Spring] HiddenHttpMethodFilter (0) | 2021.02.04 |
[Spring] Interceptor (0) | 2021.01.29 |
[Spring Boot] Request method 'DELETE' not supported (2) | 2021.01.20 |
[Spring] <context:component-scan>에 대해 (0) | 2021.01.07 |