MVC 모델 2

정키·2023년 3월 25일
0

JSP

목록 보기
5/7

-Model

어플리케이션 데이터를 처리하고 DB에 접근하며 , 비즈니스 로직과 데이터를 담당한다.

-View

사용자 인터페이스 (UI)를 담당한다.
사용자한테 보이는 화면 (HTML ,CSS ,JS)

-Controller

어플리케이션의 흐름을 제어하는 역할이다.
클라이언트의 요청을 받아 어떤 DAO를 실행시킬지 결정하고 결과를 View에 전달한다. (서블릿 파일 등등 ..)

예시

Model

public class User {
    private String name;

    public User(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Model은 User 클래스로 구현되어 있습니다. 이 클래스는 사용자의 이름(name)을 저장하고, 생성자(public User(String name)), getter(public String getName()), setter(public void setName(String name)) 메서드를 통해 이름을 설정하고 가져올 수 있습니다.

View

<!DOCTYPE html>
<html>
<head>
  <title>Welcome</title>
</head>
<body>
  <h1>Welcome, <%= request.getAttribute("userName") %>!</h1>
</body>
</html>

View는 welcome.jsp 파일로 구현되어 있습니다. 이 파일은 HTML 형식으로 작성되어 있으며, <%= request.getAttribute("userName") %> 표현식을 통해 사용자의 이름을 화면에 출력합니다. 여기서 request.getAttribute("userName")은 Controller에서 설정한 사용자 이름을 가져오는 코드입니다.

Controller

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class WelcomeController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        User user = new User(name);
        request.setAttribute("userName", user.getName());
        request.getRequestDispatcher("/welcome.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

Controller는 WelcomeController 클래스로 구현되어 있으며, Java Servlet을 상속받아 작성되었습니다. doPost 메서드는 사용자로부터 전달받은 이름을 처리하고, Model인 User 객체를 생성하여 해당 이름을 저장합니다. 그 다음 request.setAttribute("userName", user.getName())를 통해 사용자 이름을 request 객체에 저장합니다. 마지막으로 request.getRequestDispatcher("/welcome.jsp").forward(request, response) 코드를 통해 처리된 결과를 View인 welcome.jsp에 전달하고 화면에 출력합니다.

doGet 메서드는 doPost 메서드를 호출하는 역할을 합니다. 이렇게 구현함으로써 GET 요청과 POST 요청 모두 동일한 로직으로 처리됩니다.

profile
bbbu

0개의 댓글