Heim >häufiges Problem >Was ist ein MVC-Designmuster?

Was ist ein MVC-Designmuster?

coldplay.xixi
coldplay.xixiOriginal
2020-12-17 15:32:4214135Durchsuche

Das MVC-Entwurfsmuster ist ein Software-Entwurfsmuster, das die Anwendung in die oben genannten drei Kernmodule unterteilt: Geschäftsschicht, Ansichtsschicht und Kontrollschicht. Die Geschäftsschicht ist für die Implementierung der Geschäftslogik der Anwendung und die Kapselung verschiedener Datenverarbeitungsmethoden verantwortlich. Die Ansichtsschicht ist für die Anzeige der Anwendung für den Benutzer verantwortlich. Sie erhält Eingabedaten vom Benutzer und leitet sie zur Verarbeitung an die Geschäftsschicht weiter Die Kontrollschicht ruft die von der Geschäftsschicht zurückgegebenen Ergebnisse ab und zeigt sie dem Benutzer an. Die Kontrollschicht ist für die Steuerung des Anwendungsflusses verantwortlich. Sie empfängt Daten von der Ansichtsschicht und wählt dann ein Unternehmen in der Geschäftsschicht zur Verarbeitung aus.

Was ist ein MVC-Designmuster?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Was ist das MVC-Entwurfsmuster?

MVC steht für Model-View-Controller (Model-View-Controller), das zuerst in der Smalltalk-Sprache erschien und später von Sun als empfohlen wurde Java EE-Plattform.

 MVC unterteilt die Anwendung in die oben genannten drei Kernmodule. Diese drei Module können auch als Business-Layer-View-Layer-Control-Layer bezeichnet werden. Wie der Name schon sagt, sind die Hauptaufgaben der drei in der Anwendung wie folgt:

  Geschäftsschicht : Verantwortlich für die Implementierung der Geschäftslogik der Anwendung und die Kapselung verschiedener Datenverarbeitungsmethoden. Es ist egal, wie es von der Ansichtsschicht angezeigt oder vom Controller aufgerufen wird, es akzeptiert nur die Daten, verarbeitet sie und gibt ein Ergebnis zurück.

 Ansichtsschicht: Verantwortlich für die Anzeige der Anwendung für den Benutzer. Sie erhält Eingabedaten vom Benutzer und leitet sie zur Verarbeitung über die Kontrollschicht weiter. Anschließend werden die von der Geschäftsschicht zurückgegebenen Ergebnisse abgerufen der Kontrollschicht und zeigt sie dem Benutzer an.

 Kontrollschicht: Verantwortlich für die Steuerung des Prozesses der Anwendung. Sie empfängt die von der Ansichtsschicht übergebenen Daten, wählt dann ein Unternehmen in der Geschäftsschicht zur Verarbeitung aus, empfängt die von der Geschäftsschicht zurückgegebenen Ergebnisse und wählt ein Unternehmen aus die Ansichtsebene, um die Ergebnisse anzuzeigen.

 Die folgende Abbildung kann verwendet werden, um die Beziehung zwischen den drei im MVC-Muster darzustellen:

 MVC ist eine Designidee. Eine der typischen Implementierungen der MVC-Idee ist JavaBean (Muster) + JSP (Ansicht) + Servlet (Controller), und ich liste die Geschäftslogik in JavaBean gerne separat auf, um eine Struktur aus Dienst (Modus) + JavaBean (Datensatz) + JSP (Ansicht) + Servlet (Controller) zu bilden. Lassen Sie es uns unten implementieren.

MVC-Implementierung

Hier wende ich das MVC-Entwurfsmuster an, um zu erkennen, dass der Benutzer im Vordergrund einen Text eingibt, im Hintergrund die Zeichenfolge „——ysy“ abruft und zusammenfügt und sie dann zurücksendet zu einer einfachen Anwendung, die im Vordergrund angezeigt wird. Der spezifische Effekt ist wie in der Abbildung dargestellt:

1 Ansichtsebene

 <%@ 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. Kontrollebene

Servlet-Schreiben:

 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);    //跳转到视图层
    }

}

Wenn ja Ich möchte keine Anmerkungen zum Konfigurieren des Servlets verwenden und kann auch über das Web konfiguriert werden.

 2. Dies fördert die Arbeitsteilung zwischen Entwicklern. 3. Es trägt dazu bei, die Kopplung zwischen Programmmodulen zu verringern und das Programm zu erleichtern Wartung und Erweiterung. Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!

Das obige ist der detaillierte Inhalt vonWas ist ein MVC-Designmuster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn