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
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fd2ee831c-b1ef-4a99-a00a-618980d4723e%2Fimage.png)
③ Global Repository 에 존재하는 index 를 검색하여 다운로드
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F743b58ff-5584-4089-9ffb-0949ab01f667%2Fimage.png)
① Spring Web MVC 복사 후 pom.xml dependency 추가
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F656f4e6d-4d55-4e48-aa16-401fac97edc2%2Fimage.png)
② 결과 - Dispatcher Servlet 라이브러리 다운로드 완료
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7fbde583-70e9-40d4-944a-06812a359979%2Fimage.png)
Section 2. Dispatcher-servlet.xml
1. Front Controller 원리
- 톰캣으로 모든 URL을 받도록 함
- Spring Dispatcher-servlet 으로 url 매핑을 구현 (*-servlet.xml 파일)
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F53db9a47-78dd-4c26-95ae-b84ec00509c9%2Fimage.png)
2. Tomcat 설정 (web.xml)
3. Dispatcher-servlet.xml
Section 3. Dispatcher 동작
1. Controller 생성 (POJO)
- src/main/java 폴더에 패키지 생성 후 그 안에 .java 파일 생성
- Controller 인터페이스 구현 (DispatcherServlet.class 에 종속)
- handleRequest 메서드 오버라이딩
- ModelAndView 객체 생성- View 와 View 로 넘길 Model 을 다룸
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F4404c460-3aae-4cfb-9cad-721760a0a915%2Fimage.png)
- addObject() 메서드 - View 로 넘길 데이터와 접근할 이름 지정
- setViewName() 메서드 - 어떤 View 로 넘길 것인지 지정
2. View 생성 (JSP)
- Controller 에서 보낸 'data' Model 접근
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F0c578230-3c43-468c-a1f8-ec0d0f2c9ceb%2Fimage.png)
3. 결과 화면
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F940f9ab8-89b6-4c2a-9372-bbb0d5e23f62%2Fimage.png)
4. 주의 사항
- setViewName() 메서드는 index.jsp 로 request forward -> 다시 톰캣으로 request 가 보내짐
- 톰캣의 web.xml 이 아래와 같다면 dispatcher-servlet.xml 에 index.jsp 처리 bean 존재 X -> 에러
<url-pattern>/*</url-pattern>
<url-pattern>/</url-pattern>