spring

web.xml

Grindman 2020. 10. 4. 16:01

aliases 설정

1. 서블릿 이름을 실제 서블릿 클래스에 연결

2. <servlet-name>welcome</servlet-name>과 아래 매핑 설정에서의 servlet-name은 반드시 같아야 한다.

3. <servlet-class>servlets.WelcomeServlet<servlet-class>은 개발자에 의해 작성된 실제 클래스 이름으로 설정해야 한다.

 

매핑

1. URL을 서블릿 이름에 연결

2. <url-pattern>/welcome</url-pattern>은 클라이언트(browser)의 요청 URL에서 앱(프로젝트) 이름 뒤에 오는 부분으로, 슬래시('/')로 시작해야 한다.

 

DispatcherServlet

1. spring Container를 생성한다.

1-1. spring Container : Controller의 lifecycle 관리

2. 클라이언트의 요청을 처음으로 받는 클래스(Spring에서 제공)

3. 클라이언트의 요청을 Handler(Controller)에 보낸다.

4. 그외

4-1. HandlerMapping : 어떤 URL을 받을 지 결정

4-2. ViewResolver : logical view name - prefix, suffix -> pysical view object

5. <init-param> 부분은 생략이 가능하다.

5-1. <servlet-name>에 설정한 이름 + -servlet.xml 형식으로 설정 파일 이름을 만들고, web.xml과 같은 위치(/WEB-INF 하위)에 있어야 contextLoader가 해당 파일을 찾아서 읽을 수 있다.

5-2. 위와 같이 설정하면 init-param으로 dispatcher.xml 파일의 이름을 설정하지 않아도 자동으로 로드된다.

5-3. ex) salesServlet-servlet.xml

 

ContextLoaderListener

1. Controller가 공유하는 Bean들을 포함하는 Spring Container를 생성한다.

1-1. 공유하는 Bean : Dao, DataSource, Service

1-2. 각 Bean에 대한 설정 파일을 따로 생성한다.

1-3. applicationContext.xml : DataSource관련, properties 등록, SessionFactory, TransactionManager 등

2 DispatcherServlet에 의해 생성된 Bean은 ContextLoaderListener에 의해 생성된 Bean을 참조할 수 있다.

 

출처

gmlwjd9405.github.io/2018/10/29/web-application-structure.html