개발/JSP

MVC 패턴

728x90

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