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
- 웹 애플리케이션의 비즈니스 로직, 즉 수행할 서비스를 담당한다.
- Service
- 여러 DAO를 호출하여 데이터 접근 및 갱신을 하는 클래스이다.
- DAO를 통해 읽은 데이터에 대한 비즈니스 로직을 수행하여 Controller에 그 결과를 전송한다.
- DAO (Data Access Object)
- 데이터베이스에 직접 접근하여 요청 받은 결과를 반환하는 클래스이다.
- VO (Value Object)
- 계층 간 데이터 교환을 위한 객체 클래스를 말한다.
- 동의어: DTO(Data Transfer Object), Domain Object, Bean, Entity
- ※ VO의 동의어는 유래에 따라 의미가 다른 부분이 있지만, 정확한 구분이 어려워 유사한 의미로 쓰인다.
- Service
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 );
3. 정적 페이지(JSP) View로 응답할 경우
- 정적인 html은 동적으로 화면을 생성할 필요가 없으므로 응답 view에 정보를 전달할 필요가 없다.
- 이때 사용하는 것이 HttpServletResponse 객체의 sendRedirect() 메소드이다.
response.sendRedirect("/error.html");
- 이렇게 sendRedirect 정보를 받은 클라이언트는 서버로부터 받은 페이지 주소로 다시 요청을 시도한다.
- ※ request 객체는 한 번 요청한 후 제거되기 때문에 sendRedirect()를 통해 request의 정보를 전달해야 하면, 쿼리스트링을 통해 데이터를 전달해야 한다.
728x90
반응형
'이것 저것 개발 공부 > Servlet' 카테고리의 다른 글
[Servlet] Servlet에서 Thread가 어떻게 작동하는가? 웹 개발자를 위한 완벽 가이드 (0) | 2025.05.26 |
---|---|
[Servlet] 자바 서블릿과 네트워크 | 요청과 응답이 오가는 과정을 파헤쳐보자 (0) | 2025.05.25 |
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1 (0) | 2025.05.22 |
[Servlet] Servlet Listener란? 웹 애플리케이션의 생명주기 관리하기 (0) | 2025.05.20 |
[Servlet] Servlet Filter 구현 예제와 실전 적용 방법 (0) | 2025.05.15 |