MapleStory Cookie With Halo

☕ JAVA/☕ Library & Pattern

[JAVA]HttpServlet 프론트 컨트롤러 도입해보기

뉴이 NUEY 2025. 2. 28. 22:53
반응형

 

💡 FrontController
화면에서 뭔가를 클릭해 호출 했을 때, 각각의 여러 컨트롤러로 이동하지 않고, 하나의 프론트 컨트롤러로 이동해 각 컨트롤러로 이동하는 구조이다. 수문관👨‍🎤과 같은 역할
 공통 처리가 가능하고, 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.

이 글에서는 나오지 않지만, 스프링MVC의 핵심도 FrontController이며, Dispatcherservlet으로 되어 있다.

 


 

기존 코드에서 프론트 컨트롤러를 도입해보겠다.

2025.02.28 - [☕ JAVA/☕ Library & Pattern] - [JAVA]HttpServlet, JSP, JSTL을 이용한 MVC pattern

 

 


 

  1. 패키지와 클래스 위치
  2. interface 컨트롤러
  3. 를 상속받는 컨트롤러들을 만들어준다.
    이 때, 안의 코드는 메서드명만 다르고 안의 코드는 기존 코드와 같다.
  4. 동일하게 나머지 save, memberList 컨트롤러도 만들어준다.

  5. FrontController

    1.  urlPatterns = "/front-controller/v1/*"  로 시작하는 모든 페이지를 받을 수 있다.
    2. controllerMap이라는 컨트롤러 매핑 정보를 만들어서

    3.  request.getRequestURI( )  로 uri를 가져오면 "/front-controller/v1/members"가 가져와진다.
      → key값으로 활용해 일치하는 하위 컨트롤러를 가져온다.
    4. controller.process(request, response)
      → 일치하는 컨트롤러를 실행시킨다.

 

※ 구조를 개선할 때는 이와 같이, 기존 코드를 최대한 유지 시키고 틀을 변경하는 것이 좋다.

 

 


느낀 점. 물론 요즘 이렇게 쓰지는 않겠지만 참 깔끔하고 좋은 구조이다.

 

※ 참조 : https://www.inflearn.com/roadmaps/373

반응형