2022.10.07

Jimin·2022년 10월 7일
0

비트캠프

목록 보기
53/60
post-thumbnail
  • 서블릿 프로그래밍
    • 프론트 컨트롤러 디자인 패턴의 목적과 활용 방법
  • board-app 프로젝트 수행
      1. 트랜잭션 관리자 역할을 별도의 클래스로 분리하기
      1. Front Controller 디자인 패턴 도입하기
      1. 페이지 컨트롤러를 POJO로 전환하기

077. Front Controller 도입

Front Controller 도입전

Front Controller 도입후:
Architecture

Front Controller의 기능

  1. controller의 공통 기능을 처리
  2. client와의 접점을 줄인다. → Low Coupling

공통기능

  1. refresh
  2. redirect
  3. jsp 실행
  4. 오류 내용

Controller의 공통 기능Front Controller 에 맡김으로써 기능 구현이 간결해진다.

Facade Design Pattern

Facade(퍼사드, front) 디자인 패턴을 적용한 예이다.
객체간의 복잡한 작업 과정을 캡슐화함으로써 사용 객체와의 접점을 줄인다. (Low Coupling)
⇒ 유지보수가 쉬워진다.


1단계 - 프론트 컨트롤러 역할을 수행할 클래스를 만든다.

  • com.bitcamp.servlet.DispatcherServlet 클래스 생성

서블릿을 서버에 등록하는 방법

2단계 - 기존의 컨트롤러를 페이지 컨트롤러로 만든다.

  • com.bitcamp.board.controller.XxxFormController 클래스 생성
  • com.bitcamp.board.controller.XxxController 클래스 변경
  • /webapp/xxx/*.jsp 변경
    • 서블릿 경로에 맞춰 링크의 경로를 변경한다.

078. 페이지 컨트롤러를 POJO로 전환하기

  • 프론트 컨트롤러 구조에서 페이지 컨트롤러를 POJO로 전환하는 방법
  • POJO ? Plain Old Java Object (기본 자바 문법으로 작성)

프론트 컨트롤러에서 요청을 받기 떄문에 페이지 컨트롤러는 굳이 서블릿이 될 이유가 없다!

1단계 - 페이지 컨트롤러의 사용 규칙을 정의한다.

  • com.bitcamp.servlet.Controller 인터페이스 생성

2단계 - Controller 규칙에 따라 페이지 컨트롤러를 변경한다.

  • com.bitcamp.board.controller.XxxController 클래스 변경

3단계 - ContextLoaderListener에서 페이지 컨트롤러를 생성한다.

  • com.bitcamp.board.listener.ContextLoaderListener 클래스 변경

4단계 - 클라이언트 요청이 들어 왔을 때 Controller 규칙에 따라 페이지 컨트롤러를 실행한다.

  • com.bitcamp.servlet.DispatcherServlet 클래스 변경
profile
https://github.com/Dingadung

0개의 댓글