search
HomeCommon ProblemWhat is mvc design pattern

What is mvc design pattern

Dec 17, 2020 pm 03:32 PM
mvc

The mvc design pattern is a software design pattern that divides the application into the above three core modules: business layer, view layer, and control layer. The business layer is responsible for implementing the business logic of the application and encapsulating various data processing methods; the view layer is responsible for displaying the application to the user. It obtains input data from the user and passes it to the business layer for processing through the control layer. The layer obtains the results returned by the business layer and displays them to the user. The control layer is responsible for controlling the flow of the application. It receives data from the view layer and then selects a business in the business layer to process.

What is mvc design pattern

The operating environment of this tutorial: Windows 7 system, Dell G3 computer.

What is the MVC design pattern

MVC is Model-View-Controller (Model-View-Controller) is a software design pattern that first appeared in the Smalltalk language , and was later recommended by Sun as a design pattern for the Java EE platform.

MVC divides the application into the above three core modules. These three modules can also be called business layer-view layer-control layer. As the names suggest, the main roles of the three of them in the application are as follows:

 Business layer: Responsible for implementing the business logic of the application and encapsulating various data processing methods. It doesn't care how it will be displayed by the view layer or called by the controller, it only accepts the data, processes it, and returns a result.

 View layer: Responsible for the display of the application to the user. It obtains input data from the user and passes it to the business layer for processing through the control layer, and then obtains the data returned by the business layer through the control layer. The results are displayed to the user.

 Control layer: Responsible for controlling the process of the application. It receives the data passed from the view layer, then selects a business in the business layer to process, and receives the results returned by the business layer. and select a view in the view layer to display the results.

The following figure can be used to represent the relationship between the three in the MVC pattern:

MVC is a design idea, and it does not have a unified standard , one of the typical implementations of MVC ideas is JavaBean (mode) jsp (view) servlet (controller), and I like to list the business logic in JavaBean separately to form service (mode) JavaBean (data set) jsp ( View) servlet (controller) structure, let's implement it below.

MVC implementation

Here, I will apply the MVC design pattern to realize that the user enters a piece of text in the foreground, and the background obtains and splices the string "——ysy ” and then returns a simple application to be displayed in the foreground. The specific effect is as shown in the figure:

1. View layer

 <%@ 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. Control layer

servlet writing:

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

}

If you don’t want to use comments to configure the servlet, you can also It can be configured through web.xml:

<?xml  version="1.0" encoding="UTF-8"?>
<web-app>
  <display-name>Java_Web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>                                           //通过配置文件配置servlet
    <servlet-name>test</servlet-name>
    <servlet-class>servlet.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/test.do</url-pattern>
  </servlet-mapping>

</web-app>

3, data set

package bean;

public class TestBean {
    private String input;

    public String getInput() {
        return input;
    }

    public void setInput(String input) {
        this.input = input;
    }

}

4, business layer

package service;

import bean.TestBean;

public class TestService {
    public String change(TestBean testBean) {

        String s = testBean.getInput();        //从数据集中获取数据

        if(s != null && s != "") {          //如果有数据,则拼接字符串
            s += "——ysy";
        }
        return s;
    }
}

3. Advantages of MVC framework pattern

1. Conducive to code reuse

2. Conducive to developers Division of labor

 3. It is helpful to reduce the coupling between program modules and facilitate program maintenance and expansion.

For more related knowledge, please visit the FAQ column!

The above is the detailed content of What is mvc design pattern. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool