JSP로 구성할 수 있는 아키텍쳐는 모델1, 모델2로 나뉜다.
모델1
뷰와 로직을 모두 JSP 페이지 하나에서 처리하는 구조
자바빈(자바 클래스)이나 서비스 클래스를 사용해서 웹브라우저가 요청한 작업을 처리하고 그 결과를 클라이언트에 출력한다.
- 장점
- 구조가 단순하여 익히기 쉽다
- 단점
- 출력을 위한 뷰 로직과, 비지니스 로직을 위한 자바 코드가 함께 섞이기 때문에 코드가 복잡해짐
모델 2
JSP페이지와 서블릿, 로직을 위한 클래스가 나뉘어 브라우저 요청을 처리함
서블릿은 웹브라우저의 요청에 맞게 그 결과를 보여줄 JSP 페이지로 포워딩한다. 포워딩을 통해 컨텍스트를 받은 JSP 페이지를 결과 화면을 클라이언트에 전송한다. 이 과정에서 서블릿이 로직을 처리한다
특징
모든 요청을 단일 진입점, 하나의 서블릿에서 처리한다는 점.
- 모델(서비스 클래스, 자바빈) : 비지니스 영역의 로직을 담당, 컨트롤러를 통해 특정 로직에 대한 처리 요청이 들어오면 이를 수행하고 수행 결과를 컨트롤러에 반환한다.
- 뷰 : 클라이언트에 출력되는 화면을 말한다.
- 컨트롤러 : 어플리케이션의 모든 흐름 제어를 맡고 사용자의 처리 요청은 컨트롤러에 집중됨. 브라우저 요청이 들어오면, 어떤 요청인지를 분석하여 이 요청을 처리하기 위한 모델을 사용하여 처리한다. 사용한 모델로부터 결과를 받으면 추가로 처리하거나 가공해야할 정보가 있다면 처리 후 request 객체나 세션 객체에 저장하고 뷰를 선택하여 포워드나 리다이렉트 하여 클라이언트에 출력한다.
(* 포워딩 : 웹컨테이너 상에서만 페이지 이동이 있는 것. 클라이언트는 다른 페이지로 이동했다는 것을 알 수 없다. 클라이언트와의 통신이 없어 리다이렉트보다 나은 성능을 보여준다. 말 그대로 건내주기 이다.
* 리다이렉트 : 웹브라우저에게 다른 페이지로 이동하라고 명령. 다른 요청을 보낼 새로운 URL을 포함한다.
컨트롤러 = 서블릿
모델 = 로직처리클래스, 자바빈
뷰 = JSP
(* 자바빈 : 자바 클래스를 JSP에서 필요에 따라 클래스를 끌어다 쓴다. 이 클래스를 빈이라고 부른다.
여러가지 다른 오브젝트를 하나의 오브젝트에 담기 위함.
서블릿의 실행흐름
- HTTP 요청 받음
- 클라이언트 요구사항 분석
- 모델을 통한 비지니스로직 수행
- 결과를 request, session등에 저장
- 알맞은 뷰 선택후 뷰로 포워딩 혹은 리다이렉트
커맨드 패턴
하나의 명령어를 하나의 클래스에서 처리하도록 구현하는 패턴.
실행될 기능을 캡슐화 하여 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴.
웹브라우저에서 명령어를 전달하는 방법, 특정 파라미터에 명령어 정보를 전달
요청 URI 자체를 명령어로 사용한다.
자바의 Properties
프로퍼티를 관리할 떄 사용하는 클래스
프로퍼티 목록을 파일에서 읽어올 수 있다.
'개발 > JSP' 카테고리의 다른 글
서블릿이란 (0) | 2021.04.19 |
---|---|
ServletContextListener (0) | 2021.04.18 |
JSP 필터 (0) | 2021.04.18 |