[SPRING] 게시판만들기4 [ MVC 프레임워크]

🐷Jinie (juniorDeveloper)·2020년 11월 30일
0

JSP/MVC/SPRING

목록 보기
54/81

1. MVC 프레임워크 구조

  • MVC 2아키텍처는 하나의 Controller에서 모든 파일을 분기처리한다.
    이것은 유지보수와 개발을 어렵게 만든다.
  • 즉, 지금까지 연습한 MVC 2아키텍처의 Servlet을 좀 더 쪼갤 예정이다.
  • 프레임워크에서 제공하는 Controller를 사용하면
    우리가 직접 Contoller를 만들지 않아도 된다.
  • Spring MVC는 DispatcherServlet을 시작으로 다양한 객체들이 사요호작용하면서 클라이언트의 요청을 처리
  • 하지만, MVC 프레임워크에서 제공하는 Controller는 기능과 구조가 복잡해서 바로적용하기 어려움
  • 따라서 MVC 프레임워크를 통해 스프링MVC프레임워크의 구조를 미리 연습하기

2. Controller interface 만들기

  • Controller interface를 만들어서
    String handlerRequest(HttpServletRequest request, HttpServletResponse response); 메서드를 만들어주었다.
  • 구체적인 Controller 클래스를 구현하기위해 모든 Controller를 같은 타입으로 관리하기 위한 인터페이스 처리라고 생각하면 된다.
  • HandlerMapping을 통해 Controller객체를 검색하고 검색된 Controller를 실행한다.
  • 이때 어떤 Controller 객체가 검색되더라도 같은 코드로 실행하기위해서 최상위 인터페이스를 만든다.

3. Controller들

  • 실질적인 요청처리는 각각의 Controller에서 담당한다.
  • 이런식으로 select, delete의 분기처리된 부분을 모두 설정해준다.



4. ViewResolver

  • .do 확장자가 아닌 return값에 ./과 .jsp를 붙여서 jsp파일로 연결시켜준다.

5. HandlerMapping

  • HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션
  • Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조
  • 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다.
  • 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치
  • HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능
  • HashMap 값 추가 : map.put(key, value); 이용
  • map.remove(1); //key값 1 제거
    map.clear(); //모든 값 제거

6. DispatcherServlet

  • Controller를 구성하는 요소 중 DisparcherServlet은 클라이언트의 요청을 가장먼저 받아들이는 Front Controller이다.
  • init():
    딱 한 번만 호출됩니다.
    서블릿 컨테이너가 서블릿 객체를 생성한 후 호출합니다.
    서블릿이 작업하는데 필요한 자원을 준비시키는 코드를 넣습니다.
  • .do(지정한 확장자)가 실행이 되면, DispatcherServlet을 web.xml이 실행해준다.
  • DispatcherServlet이 ViewResolver 와 HandlerMapping 객체를 생성한다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글