일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- JRE라이브러리 깨짐
- 서블릿과 오라클 연동
- DataSource이란?
- Persistence 쿠키
- 쿠키실행과정
- ServletConfig란
- DataSource 설정
- ClassPath 경로
- 오라클 데이터베이스 접속
- 쿠키생성위치
- 스크립트 요소 예제
- Tomcat DataSource 설정
- import 오류
- load-on-startup
- 애너테이션으로 서블릿에서 초기화
- 서블릿에서 초기화하는방법
- ConnectionPool이란?
- JNDI란
- Project facet java version 10 is not supported
- web.xml에 load-on-startup 설정
- Statement 단점
- 쿠키 종류
- 자바 웹을 다루는 기술
- PrepareStatement란?
- 쿠키API
- ServletContext 메서드
- 세션트래킹 이란
- 이클립스 톰캣 DataSource사용방법
- Session쿠키
- Configure build path
- Today
- Total
백문이불여일타
[Jsp/Servlet] 프런트 컨트롤러 & 프론트 컨트롤 디자인패턴 본문
프런트 컨트롤러의 도입?
프런트 컨트롤러 라는 디자인 패턴을 이용하여 좀더 유지보수가 쉬운 구조로
MVC를 개선해보는 방향으로 도입이 되었다.
컨트롤러를 만들다 보면 요청 데이터를 처리하는 코드나 모델과 뷰를 제어하는
코드가 중복되는 경우가 있다.
중복코드들은 유지보수를 어렵게 하므로 프런트 컨트롤러를 통해
이 문제를 해결해 보겠습니다.
프론트 컨트롤 디자인 패턴이란?
웹 애플리케이션을 개발할 때 사용하는 MVC 디자인 패턴은 뷰에서 요청이 들어왔을 때 요청을 받아
처리하는 것은 컨트롤입니다.
그런데 하나의 웹 애플리케이션에는 많은 뷰와 컨트롤러가 존재해서 각각의 뷰와 컨트롤러가 연결되어
독립적으로 실행되면, 서버 입장에서는 현재 웹 애플리케이션 실행에 대하여 일괄적으로 처리하기 어렵습니다.
이럴 때 대표 컨트롤러(Front Controller)를 두고 뷰에서 들어오는 모든 요청을 담당하여
웹 애플리케이션을 실행하는 모든 요청을 일괄적으로 처리할 수있습니다.
이러한 구조를 '프론트 컨트롤 디자인 패턴'이라고 합니다.
아무리 자바 가상머신이 가비지를 찾아서 자동으로 없애준다해도,
이 작업 또한 CPU를 사용하는 일이기에 시스템 성능에 영향을 끼칩니다.
따라서 개발자는 늘 인스턴스의 생성과 소명에 대해 관심을 가지고 시스템 성능을 높일 수 있는 방향으로 구현해야합니다.
또한, 중복 작업을 최소화하여 유지보수를 좋게 만드는 방법을 찾아야합니다.
많은 시간동안 시스템이 운영되면서 검증되기때문에 디자인 패턴은 이렇게 검증된 방법들을
체계적으로 분류하여 정의한 것 입니다.
디자인 패턴은 이미 실무에서 사용되고 검증된 방법이기 때문에 시스템 개발에
디자인 패턴을 활용하면 시행착오를 최소화 할 수 있습니다.
프런트 컨트롤러 디자인 패턴에서는 두 개의 컨트롤러를 사용하여
웹 브라우저 요청을 처리합니다.
즉 기존에 서블릿이 단독으로 하던 작업을
1) 프런트 컨트롤러 와 2) 페이지 컨트롤러로 2개의 역활로 나누어 수행합니다.
앞의 구조도에서 보는것 처럼
프런트 컨트롤러는 1) VO객체의 준비 2) 뷰 컴포넌트로의 위임 3) 오류 처리 등과 같은 공통작업을 담당하고,
페이지 컨트롤러는 이름 그대로 요청한 페이지만을 위한 작업을 수행합니다.
'Jsp' 카테고리의 다른 글
[Jsp/Servlet]Jsp페이지 예외처리하기_실습 (0) | 2019.07.11 |
---|---|
[Jsp/Servlet]스크립트요소_내장객체기능(out 내장객체 실습) (0) | 2019.07.11 |
[Jsp/Servlet]스크립트요소_구구단 출력 예제 (0) | 2019.07.10 |
[Jsp/Servlet]스크립트요소_학점 변환 예제 (0) | 2019.07.10 |
[Jsp/Servlet]스크립트요소_로그인예제 (0) | 2019.07.10 |