728x90
반응형

[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1

 

[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1

[Servlet] Servlet Listener란? 웹 애플리케이션의 생명주기 관리하기 [Servlet] Servlet Listener란? 웹 애플리케이션의 생명주기 관리하기[Servlet] Servlet Filter 구현 예제와 실전 적용 방법 [Servlet] Servlet Filter 구

crushed-taro.tistory.com

 

1. MVC Architecture

1. MVC Architecture 구성

1. Model

  • 웹 애플리케이션의 비즈니스 로직, 즉 수행할 서비스를 담당한다.
    1. Service
      • 여러 DAO를 호출하여 데이터 접근 및 갱신을 하는 클래스이다.
      • DAO를 통해 읽은 데이터에 대한 비즈니스 로직을 수행하여 Controller에 그 결과를 전송한다.
    2. DAO (Data Access Object)
      • 데이터베이스에 직접 접근하여 요청 받은 결과를 반환하는 클래스이다.
    3. VO (Value Object)
      • 계층 간 데이터 교환을 위한 객체 클래스를 말한다.
      • 동의어: DTO(Data Transfer Object), Domain Object, Bean, Entity
      • ※ VO의 동의어는 유래에 따라 의미가 다른 부분이 있지만, 정확한 구분이 어려워 유사한 의미로 쓰인다.

 

2. View

  • 사용자가 요청을 하거나, 요청한 정보를 응답으로 받아서 볼 수 있는 화면을 담당한다.
  • JSP, HTML 등을 통해 표현한다.

 

3. Controller

  • 사용자의 요청을 전달받아 응답 처리를 위한 Service를 호출하고 결과를 View에 전송하는 클래스로, Servlet으로 작성한다.
  • 전달 받은 정보를 바탕으로 사용자 요청을 분석하고, 이를 서비스에 전달할 VO객체를 생성하여 Service에 전달한다. 그리고 Service로부터 받은 결과를 관련된 View 화면에 담아 사용자에게 응답한다.

 

2. 요청의 전달

1. RequestDispatcher

  • 사용자의 요청을 다른 Servlet이나 JSP 페이지에 전달할 때 사용하는 클래스로, request 객체를 사용해 생성할 수 있다.
  • 예시
RequestDispatcher view = request.getRequestDispatcher("/result.jsp" );
view.forward( request, response );

 

2. 동적 페이지 View(JSP)로 응답할 경우

  • request 내장 객체를 통해 RequestDispatcher 객체를 생성한다.
RequestDispatcher view = request.getRequestDispatcher("/result.jsp");

 

  • 대상 View에서 필요한 정보를 request 영역에 저장한다.
request.setAttribute("member", member);

 

  • request와 response를 인자 값으로 전달하여 정보를 전송한다.
view.forward( request, response );

Servlet 사진 1

 

3. 정적 페이지(JSP) View로 응답할 경우

  • 정적인 html은 동적으로 화면을 생성할 필요가 없으므로 응답 view에 정보를 전달할 필요가 없다.
  • 이때 사용하는 것이 HttpServletResponse 객체의 sendRedirect() 메소드이다.
response.sendRedirect("/error.html");
  • 이렇게 sendRedirect 정보를 받은 클라이언트는 서버로부터 받은 페이지 주소로 다시 요청을 시도한다.
  • ※ request 객체는 한 번 요청한 후 제거되기 때문에 sendRedirect()를 통해 request의 정보를 전달해야 하면, 쿼리스트링을 통해 데이터를 전달해야 한다.

Servlet 사진 2

728x90
반응형

+ Recent posts