Spring Dispatcher
Section 1. Dispatcher Servlet 라이브러리  
1. Repository
- Local Repository - 원격에 존재하는 Dependency(=api=Library)가 로컬에 다운로드 되는 공간
 - Global Repository - 원격에 존재하는 Dependency(=api=Library)의 목록(다운로드 받을 수 있도록 참조)이 저장되는 공간
 - 라이브러리 다운로드 시 하위 라이브러리까지 자동으로 설치됨
 
2.  Dependency 지정 방법  
- 첫 번째 방법
 
    ① window -> show view -> other -> maven -> maven repositories
    ② Rebuild index

③ Global Repository 에 존재하는 index 를 검색하여 다운로드

- 두 번째 방법
 
     ① Spring Web MVC 복사 후 pom.xml dependency 추가

     ② 결과 - Dispatcher Servlet 라이브러리 다운로드 완료

Section 2. Dispatcher-servlet.xml  
1. Front Controller 원리
- 톰캣으로 모든 URL을 받도록 함
 - Spring Dispatcher-servlet 으로 url 매핑을 구현 (*-servlet.xml 파일)

 
2.  Tomcat 설정 (web.xml) 
- 
DispatcherServlet.class 경로 복사

 - 
톰캣으로 들어오는 모든 Requset (모든 url 요청)는 Dispatcher Servlet.class 가 처리하도록 보냄

 
3.  Dispatcher-servlet.xml  
- WEB-INF 폴더 내에 dispatcher-servlet.xml 파일 생성
 - Spring IoC Container and Beans Metadata  복사

 - id = url / class = controller
 - controller 객체를 IOC 컨테이너에 담아두고 지정된 url 의 request 발생 시 비지니스 로직 수행

 
Section 3. Dispatcher 동작  
1. Controller 생성 (POJO)
- src/main/java 폴더에 패키지 생성 후 그 안에 .java 파일 생성
 - Controller 인터페이스 구현 (DispatcherServlet.class 에 종속)
 - handleRequest 메서드 오버라이딩
 - ModelAndView 객체 생성- View 와 View 로 넘길 Model 을 다룸
 

- addObject() 메서드 - View 로 넘길 데이터와 접근할 이름 지정
 - setViewName() 메서드 - 어떤 View 로 넘길 것인지 지정
 
2. View 생성 (JSP)  
- Controller 에서 보낸 'data' Model 접근

 
3. 결과 화면 

4. 주의 사항  
- setViewName() 메서드는 index.jsp 로 request forward -> 다시 톰캣으로 request 가 보내짐
 - 톰캣의 web.xml 이 아래와 같다면 dispatcher-servlet.xml 에 index.jsp 처리 bean 존재 X -> 에러
 
<url-pattern>/*</url-pattern>
- 직접 접근 가능하도록 아래처럼 변경
 
<url-pattern>/</url-pattern>
                Author And Source
이 문제에 관하여(Spring Dispatcher), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@codren/Spring-Dispatcher저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)