Home > Common Problem > body text

What is mvc design pattern

coldplay.xixi
Release: 2023-02-14 16:29:25
Original
14089 people have browsed it

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>
Copy after login

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

}
Copy after login

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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <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>
Copy after login

3, data set

package bean;

public class TestBean {
    private String input;

    public String getInput() {
        return input;
    }

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

}
Copy after login

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;
    }
}
Copy after login

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!

Related labels:
mvc
source:php.cn
Statement of this Website
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
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template