Spring Dispatcher

Codren·2021년 7월 19일
0

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>

0개의 댓글