>일반적인 문제 >MVC 디자인 패턴이란 무엇입니까?

MVC 디자인 패턴이란 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-12-17 15:32:4214112검색

mvc 디자인 패턴은 애플리케이션을 위의 세 가지 핵심 모듈(비즈니스 레이어, 뷰 레이어, 컨트롤 레이어)로 나누는 소프트웨어 디자인 패턴입니다. 비즈니스 레이어는 애플리케이션의 비즈니스 로직을 구현하고 다양한 데이터 처리 방법을 캡슐화하는 역할을 하며, 뷰 레이어는 사용자로부터 입력 데이터를 가져와 처리를 위해 비즈니스 레이어에 전달합니다. 제어 계층은 비즈니스 계층에서 반환된 결과를 가져와 사용자에게 표시합니다. 컨트롤 레이어는 애플리케이션의 흐름을 제어하는 ​​역할을 하며 뷰 레이어로부터 데이터를 받은 후 비즈니스 레이어에서 처리할 비즈니스를 선택합니다.

MVC 디자인 패턴이란 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

MVC 디자인 패턴이란 무엇인가요?

MVC는 Model-View-Controller(Model-View-Controller)를 의미하며 Smalltalk 언어에서 처음 등장했으며 이후 Sun에서 권장하는 소프트웨어 디자인 패턴입니다. Java EE 플랫폼.

 MVC는 애플리케이션을 위의 세 가지 핵심 모듈로 구분합니다. 이 세 가지 모듈은 비즈니스 레이어-뷰 레이어-제어 레이어라고도 합니다. 이름에서 알 수 있듯이 애플리케이션에서 세 가지의 주요 역할은 다음과 같습니다.

  비즈니스 계층 : ​​애플리케이션의 비즈니스 로직을 구현하고 다양한 데이터 처리 방법을 캡슐화하는 역할을 담당합니다. 뷰 레이어에 의해 어떻게 표시되거나 컨트롤러에 의해 호출되는지는 상관하지 않으며 단지 데이터를 받아들이고 처리하고 결과를 반환합니다.

 View 레이어: 사용자에게 애플리케이션을 표시하는 역할을 담당합니다. 사용자로부터 입력 데이터를 가져와 비즈니스 레이어로 전달하여 컨트롤 레이어를 통해 처리한 다음 비즈니스 레이어에서 반환한 결과를 가져옵니다. 컨트롤 레이어를 처리하여 사용자에게 표시합니다.

 컨트롤 레이어: 애플리케이션 프로세스를 제어하는 ​​역할을 담당합니다. 뷰 레이어에서 전달된 데이터를 받은 다음 비즈니스 레이어에서 처리할 비즈니스를 선택하고 비즈니스 레이어에서 반환된 결과를 받아 비즈니스를 선택합니다. 결과를 표시하는 뷰 레이어입니다.

 다음 그림은 MVC 패턴의 세 가지 관계를 나타내는 데 사용할 수 있습니다.

 MVC는 통합된 표준이 없는 MVC 아이디어의 일반적인 구현 중 하나입니다. 패턴) + jsp(뷰) + 서블릿(컨트롤러), 저는 JavaBean의 비즈니스 로직을 별도로 나열하여 서비스(모드) + JavaBean(데이터 세트) + jsp(뷰) + 서블릿(컨트롤러)의 구조를 형성하는 것을 좋아합니다. 아래에서 구현해 보겠습니다.

MVC 구현

여기서 MVC 디자인 패턴을 적용하여 사용자가 전경에서 텍스트를 입력하고 배경에서 문자열 "——ysy"를 얻어 연결한 다음 다시 보내는 것을 인식합니다. 전경에 표시된 간단한 응용 프로그램에. 구체적인 효과는 그림과 같습니다:

1. 뷰 레이어

 <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
    <form action="./test.do" method="post">
    输入你想说的话~
        <input type="text" name="input"/>
        <input type="submit" value="提交" />
        <br/>
        <%
        String s = (String)request.getAttribute("outPut");    <!--从request域中获取结果-->
        if(s != null){                          <!--如果有结果,显示结果-->
        %>
            <%=s %>
        <%
        }
        %>
    </form>
</body>
</html>

2 서블릿 쓰기:

 package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.TestBean;
import service.TestService;

@WebServlet("/test.do")                                    //通过注释配置servlet
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public TestServlet() {
        super();
    }

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

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

        request.setCharacterEncoding("utf-8");                      //设置字符集,防止中文乱码

        TestBean testBean = new TestBean();                        //获取数据集对象
        TestService testService = new TestService();                  //获取业务层对象

        String s =request.getParameter("input");                    //获取视图层提交的数据

        testBean.setInput(s);                                //将数据存入数据集中
        s = testService.change(testBean);                         //调用业务层,传入数据,接收返回结果
        request.setAttribute("outPut", s);                        //将结果存入request域中
        request.getRequestDispatcher("test.jsp").forward(request, response);    //跳转到视图层
    }

}
그렇다면 서블릿을 구성하기 위해 주석을 사용하지 않고 웹을 통해 구성할 수도 있습니다. 코드 재사용

 2. 개발자 간의 업무 분업에 도움이 됩니다.

 3. 프로그램 모듈 간의 결합을 줄이고 프로그램을 촉진하는 데 도움이 됩니다. 유지보수 및 확장.

더 많은 관련 지식을 알고 싶다면 FAQ 칼럼을 방문해주세요!

위 내용은 MVC 디자인 패턴이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.